如何获取S3存储桶的所有根文件夹

时间:2017-03-02 16:05:51

标签: python amazon-web-services amazon-s3 boto3

我有一个AWS 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']

1 个答案:

答案 0 :(得分: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/'}
   ]
 }