不推荐使用AmazonS3Client如何使用凭证获取s3client对象

时间:2017-05-04 17:08:46

标签: java amazon-s3 aws-java-sdk

为了获取s3客户端对象,我使用下面的代码。

BasicAWSCredentials creds = new BasicAWSCredentials(key, S3secretKey); 
AmazonS3 s3Client =AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(creds)).build();

获得以下错误

无法通过区域提供商链找到区域。必须在构建器或设置环境中提供显式区域以提供区域。

3 个答案:

答案 0 :(得分:4)

我不得不改为:

AmazonS3 client = AmazonS3ClientBuilder.standard()
                         .withRegion(Regions.US_EAST_1)
                         .withForceGlobalBucketAccess(true)
                         .build();

模仿" old"方式(即新的AmazonS3Client())

答案 1 :(得分:2)

使用构建器,您需要使用构建器方法提供S3存储区域,例如.withRegion(Regions.US_EAST_1)

答案 2 :(得分:0)

使用1.11.98版本的sdk执行此操作的一种方法,在您的代码中,您可以这样做:

0

你需要有〜/ .aws / credentials和〜/ .aws / config文件:

〜/ .aws /凭证内容:

AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();

〜/ .aws / config contents:

[pca]
aws_access_key_id = KDDDJGIzzz3VVBXYA6Z
aws_secret_access_key = afafaoRDrJhzzzzg/Hhcccppeeddaf

[deault]
aws_access_key_id = AMVKNEIzzzNEBXYJ4m
aws_secret_access_key = bU4rUwwwhhzzzzcppeeddoRDrJhogA

确保它们具有可读性,如果您在启动服务之前有多个,则导出个人资料:

[default]
region = us-west-1

[pca]
region = us-west-1

有一个很好的描述here