gpt4 book ai didi

java - 如何复制格式为“bucketName/folder1/folder2”的存储桶的内容

转载 作者:太空宇宙 更新时间:2023-11-04 14:30:33 24 4
gpt4 key购买 nike

我想复制folder2的内容而不是bucketName的全部内容。我正在使用以下代码但没有成功。我实际上没有看到任何输出。如果我只复制存储桶的内容而不是子文件夹,我会看到目标存储桶中的全部内容。如何只复制存储桶下子文件夹2的内容。

 System.out.println("Listing objects and copying objects");
if (!prefix.endsWith(delimiter)) {
prefix += delimiter;
}
ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
.withBucketName(bucketName)
.withPrefix(prefix)
.withDelimiter(delimiter);
ObjectListing objectListing;
objectListing = s3Client.listObjects(listObjectsRequest);
for (S3ObjectSummary objectSummary :
objectListing.getObjectSummaries()) { s3Client.copyObject(bucketName, objectSummary.getKey(), bucketName2, "output/" + objectSummary.getKey());
System.out.println(" - " + objectSummary.getKey() + " " +
"(size = " + objectSummary.getSize() +
")");
listObjectsRequest.setMarker(objectListing.getNextMarker());

最佳答案

我设置了一些东西来和你一起尝试一下。我创建了两个存储桶,一个名为 mytestbucket20141006,充当源,另一个名为 mytestbucket20141006b,充当目标。在源存储桶中,我有一个名为 afolder 的文件夹,其中包含几个文件。

以下代码成功将对象复制到目标:

    ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
.withBucketName("mytestbucket20141006")
.withPrefix("afolder/afolder2/afolder3");
//.withDelimiter("/");
ObjectListing objectListing = s3.listObjects(listObjectsRequest);
for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) {
String key = objectSummary.getKey();
String newKey = key.replace("afolder/afolder2/afolder3/", "afolder3/");
s3.copyObject("mytestbucket20141006", key, "mytestbucket20141006b", newKey);
System.out.println(key);
}

关于java - 如何复制格式为“bucketName/folder1/folder2”的存储桶的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26221273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com