2016-01-13 88 views
0

我有一個S3結構如下文件路徑。清單子文件夾中的S3存儲桶

我需要做的是,鑑於s3bucket的名稱和第一級重點和第三級我需要的所有文件,它符合這個條件,即某種通配符爲第二級密鑰

路徑條目

有人可以指出如何在java中做到這一點?

感謝

回答

0

我勸你去通過這些鏈接: 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」和第三鑰匙說:「巴茲」,你可以調用列表0 「/ foo」的bjects()API使用的前綴值和「/」分隔符值,這會給你與共同的前綴列表中的兩個條目是「富/酒吧/」和「一個ObjectListing富/ BOO/」。然後,你可以添加已知的第三個關鍵的發言權「慶典」,以這些字符串,並使用listObjects再次得到您的所有對象()API。

0

坦率地說,最簡單的方法是獲取與已知的前綴的所有對象的列表。然後,讓你的代碼看看這個返回找出你需要哪些類型的鑰匙。這將涉及更少的AWS調用。

相關問題