将Amazon s3对象复制到另一个存储桶中的另一个文件夹。

时间:2013-09-23 13:10:50

标签: java amazon-s3

我想将存储桶中的所有数据复制到amazon s3上另一个存储桶中的另一个目录中。

就像我有一个名称 sourceBucket 和一个 destBucket ,并且 destBucket 中有另一个目录。我想将所有数据从sourceBucket复制到该目录。 我正在使用java。我无法找到解决方案

2 个答案:

答案 0 :(得分:5)

尝试:

ObjectListing objectListing = s3.listObjects(new ListObjectsRequest()
                                .withBucketName(bucketName)
                                .withPrefix(""));

for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) {s3client.copyObject(sourceBucketName, objectSummary.getKey(), 
                    destinationBucketName, objectSummary.getKey());}

答案 1 :(得分:4)

s3没有文件夹。你看到的“结构”是关键。所以只需用适当的密钥复制对象即可。 来自Programmer Guide: Code Samples

S3Object[] filteredObjects = s3Service.listObjects("sourceBucket", "appData/", null);
for(S3Object object: filteredObjects ){
    s3Service.copyObject("sourceBucket", "newAppData/" + object.getKey().substring(object.getKey().indexOf("/"), "destBucket", object, false);
}