2017-03-02 62 views
0

我有一個AWS S3桶以下的頂級內容的所有根文件夾:如何獲得S3存儲

folder_1/ 
folder_2/ 
folder_3/ 
random_file.txt 

所有文件夾有大量的文件和文件夾,裏面它們。

如何編寫一個boto3腳本,該腳本僅檢索桶頂層/根目錄中的文件夾名稱?

我一直在使用以下方法:

bucket = s3.Bucket('mybucket') 
root_folders = [] 
for key in bucket.objects.filter(Delimiter='/'): 
    root_folders.append(key.key) 

結果是(當然)剛剛random_file.txt

結果林尋找的是:

['folder_1', 'folder_2', 'folder_3'] 
+0

所以你想讓它讀[folder_1,folder_2,folder_3,random_file.txt]或只是[folder_1,folder_2,folder_3]? – Whud

+0

只是文件夾! – Vingtoft

回答

2

使用list_objects_v2,您可以檢索CommonPrefixes字段中的文件夾,如下所示:

>>> s3.list_objects_v2(Bucket='mybucket', Delimiter='/') 
{ ..., 
    u'CommonPrefixes': [ 
    {u'Prefix': 'folder_1/'}, 
    {u'Prefix': 'folder_2/'}, 
    {u'Prefix': 'folder_3/'} 
    ] 
}