我想将存储桶中的所有数据复制到amazon s3上另一个存储桶中的另一个目录中。
就像我有一个名称 sourceBucket 和一个 destBucket ,并且 destBucket 中有另一个目录。我想将所有数据从sourceBucket复制到该目录。 我正在使用java。我无法找到解决方案
答案 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);
}