如何从S3存储桶各成员的/In文件夹中获取文件列表?
筛选S3存储桶中所有/In文件夹内的文件列表
我的S3_BUCKET存储桶目录结构如下:
MEMBER 1 ├── In ├── Out MEMBER 2 ├── In ├── Out MEMBER 3 ├── In ├── Out
我需要仅获取所有/In文件夹中的文件列表,但当前使用的代码会获取存储桶内全部文件,无法满足需求。当前代码:
def pickup_s3_files(): s3 = boto3.resource('s3') bucket = s3.Bucket('S3_BUCKET') reports = [obj.key for obj in bucket.objects.all() if not obj.key.endswith("/")] return reports
修改后的代码
def pickup_s3_files(): s3 = boto3.resource('s3') bucket = s3.Bucket('S3_BUCKET') reports = [obj.key for obj in bucket.objects.all() if not obj.key.endswith("/") and '/In/' in obj.key] return reports
修改说明
- 新增
'/In/' in obj.key判断:精准匹配路径中包含/In/的文件,确保只获取各成员文件夹下In子目录内的内容,自动排除Out目录及根目录的文件。 - 保留
not obj.key.endswith("/"):避免将S3中用于标识文件夹的空对象(后缀为/)纳入结果列表。
内容的提问来源于stack exchange,提问作者Amamra
相关产品推荐
相关产品推荐

