【发布时间】:2017-05-08 21:29:25
【问题描述】:
我使用 aws-java-sdk 版本 1.11.104。根据AWS credentials doc,默认区域是us-east-1,但是当我在创建客户端时没有手动设置区域时,如下所示:
AWSCredentialsProvider awsCredentialsProvider =
new AWSStaticCredentialsProvider(new BasicAWSCredentials(awsAccessKey, awsSecretKey));
AmazonS3 s3Client =
AmazonS3ClientBuilder.standard().withCredentials(awsCredentialsProvider).build();
我收到此错误:
com.amazonaws.SdkClientException:
Unable to find a region via the region provider chain.
Must provide an explicit region in the builder or setup environment to supply a region.
-
为什么不使用默认区域?
我尝试在上面的代码之前添加以下内容,但它仍然不起作用。
System.setProperty(SDKGlobalConfiguration.AWS_REGION_ENV_VAR, "us-east-1"); 如何以编程方式设置 AWS 区域?(我想在运行时为我的项目的所有类设置它)。
谢谢。
编辑:
我知道我可以在客户的构建器上使用.withRegion(),但我期待一个默认区域,或者,通过默认区域提供程序链从环境变量中选择的区域。
【问题讨论】:
-
@Lashane 和 @alfasin 您的链接没有解释如何以编程方式设置环境变量,也没有解释为什么
System.setProperty(SDKGlobalConfiguration.AWS_REGION_ENV_VAR, "us-east-1");不起作用...
标签: java amazon-web-services aws-sdk