【问题标题】:Unable to find a region via the region provider chain error when getting AmazonS3获取 AmazonS3 时无法通过区域提供商链错误找到区域
【发布时间】:2020-06-02 09:25:45
【问题描述】:

我有以下方法返回 AmazonS3 以上传文件。在本地环境中,我必须连接到不同区域的 s3 存储桶,但在其他环境中,s3 存储桶和应用程序代码是相同的 aws 区域。

 public AmazonS3 getAmazonS3Client() {
        if ("local".equals(hostEnvironment)) {
            final AssumeRoleRequest roleRequest = new AssumeRoleRequest()
                    .withRoleArn("arnrole").withRoleSessionName("s3Session");
            final AssumeRoleResult assumeRoleResult = AWSSecurityTokenServiceAsyncClientBuilder.defaultClient()
                    .assumeRole(roleRequest);    
            final Credentials sessionCredentials = assumeRoleResult.getCredentials();
            final BasicSessionCredentials basicSessionCredentials = new BasicSessionCredentials(
                    sessionCredentials.getAccessKeyId(), sessionCredentials.getSecretAccessKey(),
                    sessionCredentials.getSessionToken());
            return AmazonS3Client.builder().withRegion("us-east-2").withCredentials
            (new AWSStaticCredentialsProvider(basicSessionCredentials)).build();
        } else {
            return AmazonS3Client.builder().withRegion("us-east-2").withCredentials
                    (new InstanceProfileCredentialsProvider(true)).build();
        }    
    }

我从本地运行时遇到异常,我在这里缺少什么?

原因:com.amazonaws.SdkClientException:无法找到区域 通过区域供应商链。必须在 构建器或设置环境以提供区域。在 com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:462) 在 com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:424) 在 com.amazonaws.client.builder.AwsAsyncClientBuilder.build(AwsAsyncClientBuilder.java:80) 在 com.amazonaws.services.securitytoken.AWSSecurityTokenServiceAsyncClientBuilder.defaultClient(AWSSecurityTokenServiceAsyncClientBuilder.java:45)

【问题讨论】:

    标签: java amazon-s3 aws-sdk


    【解决方案1】:

    在我将区域设置为 AmazonS3Client 后,这可以工作

    AmazonS3Client amazonS3 = new AmazonS3Client(basicSessionCredentials); amazonS3.setRegion(RegionUtils.getRegion("us-east-2"));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-20
      • 2020-09-03
      • 2018-08-23
      • 2015-07-27
      相关资源
      最近更新 更多