【问题标题】:ArchiveTransferManagerBuilder Unable to find a region via the region provider chainArchiveTransferManagerBuilder 无法通过区域提供者链找到区域
【发布时间】:2017-10-27 06:04:14
【问题描述】:

AWS Glacier API 提示我找不到该区域,即使我特别指定了该区域:

EndpointConfiguration endpointConfig = new EndpointConfiguration("https://glacier.us-east-2.amazonaws.com/", "us-east-2");

AmazonGlacier glacierClient = AmazonGlacierClientBuilder.standard()
  .withEndpointConfiguration(endpointConfig)
  .withCredentials(credentials)
  .build();

ArchiveTransferManager xferMgr = new ArchiveTransferManagerBuilder()
    .withGlacierClient(glacierClient)
    .build();

    UploadResult result = xferMgr.upload("Data_Full", "my archive " + (new Date()), new File("C:\\myBigFile"));

我得到了这个堆栈跟踪:

com.amazonaws.SdkClientException:无法通过区域提供商链找到区域。必须在构建器中提供显式区域 或设置环境以提供区域。在 com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:371) 在 com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:337) 在 com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46) 在 com.amazonaws.services.sqs.AmazonSQSClientBuilder.defaultClient(AmazonSQSClientBuilder.java:44) 在 com.amazonaws.services.glacier.transfer.ArchiveTransferManagerBuilder.resolveSQSClient(ArchiveTransferManagerBuilder.java:129) 在 com.amazonaws.services.glacier.transfer.ArchiveTransferManagerBuilder.getParams(ArchiveTransferManagerBuilder.java:135) 在 com.amazonaws.services.glacier.transfer.ArchiveTransferManagerBuilder.build(ArchiveTransferManagerBuilder.java:143)

请注意,我使用 API 来列出保管库并且它可以工作:

AmazonGlacierClientBuilder clientbuilder = AmazonGlacierClientBuilder.standard();
EndpointConfiguration endpointConfig = new EndpointConfiguration("https://glacier.us-east-2.amazonaws.com/", "us-east-2");
clientbuilder.withEndpointConfiguration(endpointConfig);
ProfilesConfigFile cf = new ProfilesConfigFile();
AWSCredentialsProvider credentials = new ProfileCredentialsProvider(cf, "My AWS Profile Name");
clientbuilder.setCredentials(credentials);
AmazonGlacier glacierClient = CustomAmazonGlacierClientBuilder.buildCustomAmazonGlacierClient();
ListVaultsRequest request = new ListVaultsRequest();
ListVaultsResult result = glacierClient.listVaults(request);

我最近下载了 AWS / Glacier 库作为 Eclipse 插件。它显示了 aws-java-sdk-opensdk-1.11.130.jar 的 .jar 版本

有没有人知道我可以在代码中添加什么以满足区域要求?我宁愿以编程方式进行

【问题讨论】:

    标签: java amazon-web-services amazon-glacier aws-java-sdk


    【解决方案1】:

    我通过添加 AWS_REGION 环境变量解决了这个问题。例如。我们-东-2。使用 Eclipse 时,您可以使用 Run --> Run Configurations 添加它。

    我还使用 Eclipse 帮助 --> 检查更新功能更新了 Eclipse 和 AWS Eclipse 插件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 2020-06-02
      • 1970-01-01
      • 2020-09-03
      • 2020-09-24
      • 2020-09-13
      • 2013-04-23
      相关资源
      最近更新 更多