gpt4 book ai didi

java - AWS S3 - 仅列出根级对象

转载 作者:行者123 更新时间:2023-11-30 07:58:03 25 4
gpt4 key购买 nike

我有一个具有以下文件夹结构的 S3 存储桶:

<bucket-name>
folder1/
....
folder2/
....
foldern/
....

这些文件夹中的每一个都有文件,我只想列出顶级文件夹 folder1、folder2 etc.

我发现了很多建议我使用 "/" 作为分隔符和空前缀的解决方案,这正是我在下面的 Java 片段中尝试做的事情:

ListObjectsRequest listObjects = new ListObjectsRequest()
.withDelimiter("/")
.withPrefix("")
.withBucketName(s3BucketName);
ObjectListing objects = s3.listObjects(listObjects);
for (S3ObjectSummary summ : objects.getObjectSummaries()) {
System.out.println(summ.getKey());
}

for 循环仍然不打印任何键。是我做错了什么,还是根本没有这样做?

最佳答案

我设法用以下内容列出顶级文件夹(在 Java 中):

ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
.withBucketName(bucketName)
.withDelimiter("/");
ObjectListing objectListing = client.listObjects(listObjectsRequest);
List<String> commonPrefixes = objectListing.getCommonPrefixes();

只需要设置分隔符,从常用前缀中​​读取即可。

我目前使用的SDK版本是1.10.14

    <dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.10.14</version>
</dependency>

关于java - AWS S3 - 仅列出根级对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40802465/

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