繁体   English   中英

如何从 S3 存储桶中仅获取子文件夹名称

[英]How to get only the sub folder names from a S3 bucket

我有一个 S3 存储桶,其中包含许多子文件夹。 比方说,

'test-bucket'
-->'photos'
    -->2020
    -->2019
    -->2018
    ...

在“测试桶”中有一个名为“照片”的子文件夹,在照片文件夹中可能有多个子文件夹。

所以我需要遍历照片桶并只获取超过 2 年的照片(即从 2018 年开始)。 这是我下面使用 python 库 boto3 的代码。

current_year = datetime.datetime.now().year
client.list_objects_v2(Bucket='test-bucket',Prefix = 'photos/'+str(current_year-3),MaxKeys=1000 )

但这仅返回 2018 年的数据。 提出一个想法来循环超过 2 年的整年。 提前致谢

您可以在传递Delimiter值时使用ListObjects()获取文件夹名称。 然后它将文件夹列表作为CommonPrefixes返回。

这是一些示例代码:

import boto3

s3_client = boto3.client('s3')
objects = s3_client.list_objects_v2(Bucket='my-bucket', Delimiter='/', Prefix ='photos/')

for prefix in objects['CommonPrefixes']:
    print(prefix['Prefix'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM