我可以通过
抓取并读取我的AWS S3存储桶中的所有对象s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
all_objs = bucket.objects.all()
for obj in all_objs:
pass
#filter only the objects I need
然后
obj.key
会给我一条路径。
有没有办法预先过滤那些尊重某个起始路径(存储桶中的目录)的文件,这样我就可以避免遍历所有对象并稍后过滤?
答案 0 :(得分:22)
s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
objs = bucket.objects.filter(Prefix='myprefix')
for obj in objs:
pass
答案 1 :(得分:0)
如果我们只需要对象键列表,那么bucket.objects.filter
是list_objects或list_object_v2的更好选择,因为这些函数最多可以有1000个对象。参考:list_objects_v2