2014-03-30 147 views
2

如何使用Ruby SDK獲取特定S3存儲桶目錄中每個文件的名稱和內容?枚舉S3桶中的對象很簡單(例如my_bucket)。從文檔:如何枚舉存儲桶中S3文件夾中的所有文件?

bucket = s3.buckets['my_bucket'] 
bucket.objects.each do |obj| 
    puts obj.key 
end 

但現在,如果我想在目錄my_bucket/some_folder的所有文件,我不知道該如何一一列舉了,我找不到出奇的文檔任何東西。我試圖用my_bucket/some_folder切換my_bucket,但是那給了AWS錯誤。有任何想法嗎?

回答

3

可以使用.with_prefix方法:

bucket.objects.with_prefix('some/folder/') 

然後,您可以通過一個接他們一個。以上內容返回Enumerator。如果你打電話給.map,你可以訪問,例如,當它是.last_modified,等等。

+0

真棒謝謝羅伯特!你是否也碰巧知道是否有辦法在沒有路徑的情況下得到結果對象的名字?否則,當你得到'object.key'時,它會給出'some/folder/my_object.txt',我只想'my_object.txt'。 謝謝! (當定時器啓動時,我會在2分鐘內接受) –

+0

當然,如果你知道'prefix'('some/folder /')並且你有'name'('some/folder/my_object.txt'),只要寫'name [prefix.length ..- 1]'。 –

相關問題