4

我想使用 java 将存储桶上的所有数据复制到亚马逊 s3 上另一个存储桶中的另一个目录。

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

4

2 回答 2

5

尝试 :

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

for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) {s3client.copyObject(sourceBucketName, objectSummary.getKey(), 
                    destinationBucketName, objectSummary.getKey());}
于 2013-09-23T13:33:52.730 回答
4

s3 没有文件夹。您看到的“结构”是关键。因此,只需使用正确的键复制您的对象。来自程序员指南:代码示例

S3Object[] filteredObjects = s3Service.listObjects("sourceBucket", "appData/", null);
for(S3Object object: filteredObjects ){
    s3Service.copyObject("sourceBucket", "newAppData/" + object.getKey().substring(object.getKey().indexOf("/"), "destBucket", object, false);
}
于 2013-09-23T13:14:29.423 回答