簡體   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