2016-06-14 46 views
0

我想在不同的地區2個S3桶之間複製文件:S3Client copyObject交叉進行地區

US_EAST_1 ---> EU_CENTRAL_1

使用以下命令:

s3client.copyObject(sourceBucket, sourceFile, DestBucket, DestFile); 

我發起s3client沒有提供一個區域允許它與兩個區域一起工作,但是出現以下錯誤:

Caused by: com.amazonaws.services.s3.model.AmazonS3Exception: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint. (Service: Amazon S3; Status Code: 301; Error Code: PermanentRedirect; Request ID: C2E6D084FF257437), S3 Extended Request ID: rXDTuqPSCCKWoF8luScpL+/po93oEQC2VSNUBQtSLBh5q8yEAO0WwK8FnBMPGEZQjS+zwkkHWBg= at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1305) at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:852) at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:630) at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:405) at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:367) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:318) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3787) at com.amazonaws.services.s3.AmazonS3Client.copyObject(AmazonS3Client.java:1530) at com.amazonaws.services.s3.AmazonS3Client.copyObject(AmazonS3Client.java:1487)

我正在使用'aws -java-sdk'版本:'1.11.7'

如何克服這個錯誤?

回答

5

無法將客戶端配置爲「在兩個地區都能工作」。它必須配置一個區域,以便它在單個區域中工作。

當在桶之間(區域之間)複製對象時,請將客戶端設置爲目標區域。然後,指定源桶和目標桶。

+0

謝謝!這解決了我。我想這在AWS官方文檔中沒有明確提及。 –