2017-05-04 23 views
0

爲了獲取s3客戶端對象,我正在使用下面的代碼。AmazonS3Client已棄用如何使用憑證獲取s3client對象

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

獲得以下錯誤

無法找到通過區域供應商鏈的區域。必須在建造者或設置環境中提供一個明確的區域來提供一個區域。

回答

1

你需要使用構建器方法提供您的S3存儲區的建設者,像.withRegion(Regions.US_EAST_1)

0

一種方式與98年1月11日版本的SDK做到這一點,在你的代碼,你會怎麼做:

AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient(); 

而且你需要有〜/ .aws /憑證和〜/ .aws /配置文件:

〜/ .aws /憑證內容:

[pca] 
aws_access_key_id = KDDDJGIzzz3VVBXYA6Z 
aws_secret_access_key = afafaoRDrJhzzzzg/Hhcccppeeddaf 

[deault] 
aws_access_key_id = AMVKNEIzzzNEBXYJ4m 
aws_secret_access_key = bU4rUwwwhhzzzzcppeeddoRDrJhogA 

〜/ .aws /配置內容:

[default] 
region = us-west-1 

[pca] 
region = us-west-1 

確保它們是可讀的,你如上多開始服務之前,如果你有導出配置文件:

alper$ export AWS_PROFILE="pca" 

有一個很好的說明here

3

我不得不更改爲:

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

模擬「舊」的方式(即新的AmazonS3Client())

相關問題