我需要列出我的S3存储桶中包含的某个文件夹中包含的所有文件.
文件夹结构如下
/my-bucket/users/<user-id>/contacts/<contact-id>
Run Code Online (Sandbox Code Playgroud)
我有与用户相关的文件和与某个用户的联系人相关的文件.我需要列出两者.
要列出我正在使用此代码的文件:
ListObjectsRequest listObjectsRequest = new ListObjectsRequest().withBucketName("my-bucket")
.withPrefix("some-prefix").withDelimiter("/");
ObjectListing objects = transferManager.getAmazonS3Client().listObjects(listObjectsRequest);
Run Code Online (Sandbox Code Playgroud)
要列出某个用户的文件我正在使用此前缀:
users/<user-id>/
我正确地获取目录中的所有文件,不包括contacts子目录,例如:
users/<user-id>/file1.txt
users/<user-id>/file2.txt
users/<user-id>/file3.txt
Run Code Online (Sandbox Code Playgroud)
要列出某个用户联系人的文件而不是我使用此前缀:
users/<user-id>/contacts/<contact-id>/
但在这种情况下,我也将目录本身作为返回的对象:
users/<user-id>/contacts/<contact-id>/file1.txt
users/<user-id>/contacts/<contact-id>/file2.txt
users/<user-id>/contacts/<contact-id>/
Run Code Online (Sandbox Code Playgroud)
为什么我会出现这种行为?两个上市要求之间有什么不同?我只需要列出目录中的文件,不包括子目录.
我有一个s3结构如下:
s3bucketname -> List of first level keys -> List of second level keys -> List of third level keys -> Actual file.
Run Code Online (Sandbox Code Playgroud)
我需要做的是,给定s3bucket的名称和第一级密钥的条目,我需要位于第一级密钥下的所有二级密钥的名称.所以基本上如果我们把它看作文件夹,我会得到它的名称和root folder它s3bucketname的一个子文件夹的名称subfolder1,我想列出其中的所有文件夹subfolder1.只是名字,而不是完整的路径.
有人可以指出如何使用亚马逊的java sdk在java中做到这一点吗?
谢谢