S3Client copyObject跨区域

时间:2016-06-14 15:52:03

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

我正在尝试在不同区域的2个S3存储桶之间复制文件:

  

US_EAST_1 ---> EU_CENTRAL_1

使用以下命令:

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

我启动了s3client而没有提供允许它与两个区域一起工作的区域,但是我收到以下错误:

  

引起:com.amazonaws.services.s3.model.AmazonS3Exception:The   你试图访问的存储桶必须使用   指定的端点。请将以后的所有请求发送到此端点。   (服务:Amazon S3;状态代码:301;错误代码:PermanentRedirect;   请求ID:C2E6D084FF257437),S3扩展请求ID:   rXDTuqPSCCKWoF8luScpL + / + po93oEQC2VSNUBQtSLBh5q8yEAO0WwK8FnBMPGEZQjS = zwkkHWBg     在   com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1305)     在   com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:852)     在   com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:630)     在   com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:405)     在   com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:367)     在   com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:318)     在   com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3787)     在   com.amazonaws.services.s3.AmazonS3Client.copyObject(AmazonS3Client.java:1530)     在   com.amazonaws.services.s3.AmazonS3Client.copyObject(AmazonS3Client.java:1487)

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

如何克服此错误?

1 个答案:

答案 0 :(得分:7)

客户端无法配置为"在两个区域都工作"。它必须配置一个区域,以便它在一个区域内工作。

在存储桶之间(区域之间)复制对象时,请将客户端设置为目标区域。然后,指定源和目标存储区。