我有一个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']
答案 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/'}
]
}