繁体   English   中英

列出s3存储桶中的子文件夹文件路径

[英]Listing sub folders files path in an s3 bucket

我有一个s3结构,如下所示:

s3bucketname->一级密钥列表->二级密钥列表->二级密钥列表->实际文件。

我需要做的是,给定s3bucket的名称以及第一级密钥和第三级密钥的条目,我需要限定该条件的所有文件的路径,即第二级密钥的某种通配符

有人可以指出如何在Java中执行此操作吗?

谢谢

我建议您浏览以下链接: http : //docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3Client.html#listObjects%28com.amazonaws.services.s3。 model.ListObjectsRequest%29

http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/ObjectListing.html#getCommonPrefixes%28%29

假设您的存储桶中具有这样的层次结构:

"foo/bar/baz/sample1.txt"
"foo/bar/bash/sample2.txt"
"foo/bar/bang/sample3.txt"
"foo/boo/baz/sample4.txt"
"foo/boo/bash/sample6.txt"
"foo/boo/sample5.txt"

而且您知道第一个键是“ foo”,第三个键是“ baz”,您可以使用前缀值“ foo /”和定界符值“ /”来调用listObjects()api,这将给出您将获得一个ObjectListing,它在公共前缀列表中有两个条目“ foo / bar /”和“ foo / boo /”。 然后,您可以将已知的第三个键“ bash”附加到每个字符串中,并再次使用listObjects()api获取所有对象。

坦率地说,最简单的方法是获取具有已知前缀的所有对象的列表。 然后,让您的代码查看返回的键,以找出所需的键。 这将减少对AWS的调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM