Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 复制不同区域存储桶中的S3对象_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services 复制不同区域存储桶中的S3对象

Amazon web services 复制不同区域存储桶中的S3对象,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我将S3对象从一个Bucket A(区域:us-west-2)复制到另一个Bucket B(区域:us-east-1),同时,我得到以下错误:Bucket位于该区域:us-east-1。请使用此区域重试请求(服务:Amazon S3;状态代码:301;错误代码:PermanentRedirect;请求ID:8A8C33763F67F1EE;S3扩展请求ID:Y2IHUTD6FSI3ANLJCWX4ZVNADM9KXXK8YUJIUXZGBOIKH9GQXHIJFOG5NO6PD1S4WK6CHI

我将S3对象从一个Bucket A(区域:us-west-2)复制到另一个Bucket B(区域:us-east-1),同时,我得到以下错误:Bucket位于该区域:us-east-1。请使用此区域重试请求(服务:Amazon S3;状态代码:301;错误代码:PermanentRedirect;请求ID:8A8C33763F67F1EE;S3扩展请求ID:Y2IHUTD6FSI3ANLJCWX4ZVNADM9KXXK8YUJIUXZGBOIKH9GQXHIJFOG5NO6PD1S4WK6CHIT14=;代理:null):com.amazonaws.services.S3.model.AmazonS3Exception

这就是我创建S3Client的方式:

 public AmazonS3 getAmazonS3(final AppConfigTree appConfigTree) {
return AmazonS3ClientBuilder
        .standard()
        .withClientConfiguration(s3ClientConfiguration())
        .withRegion(appConfigTree.findString("us-west-2"))
        .build();}
S3复制操作:

private void copyObjects(final ObjectListing objects, final String srcBucket, final String srcPath,
                     final String destBucket, final String destPath) {

log.info(String.format("Copying %d objects from %s/%s to %s/%s.",
        objects.getObjectSummaries().size(), srcBucket, srcPath, destBucket, destPath));

final ObjectMetadata metadata = new ObjectMetadata();
for (final S3ObjectSummary summary : objects.getObjectSummaries()) {

    final CopyObjectRequest request = new CopyObjectRequest(srcBucket, summary.getKey(), destBucket,
            FileUtility.getFilePath(summary.getKey(), destPath));
    metadata.setContentType(getContentType(destPath));
    request.setNewObjectMetadata(metadata);
    amazonS3.copyObject(request);
}
log.info(String.format("Copied %d objects.", objects.getObjectSummaries().size()));

}

您好--您的问题是A和B都在美国西部2区,您的意思是其中一个在美国东部1区(或另一个地区)?如果您在不同的地区或客户中使用Bucket,您需要为每个地区或客户创建一个S3Client。是,右图us-east-1I我不理解Bucket的区域错误,因为aws界面显示s3 Bucket是全局的。我甚至没有在s3接口中看到存储桶的区域。