[英]How to filter Boto3 s3 objects?
我想改变这条线
files = os.listdir('/Users/milenko/mario/Json_gzips')
在我的代码中,将.gz
文件从我的存储桶中直接读取到列表中。 我试过了
>>> import boto3
>>> s3 = boto3.resource('s3')
>>> s3
s3.ServiceResource()
>>> my_bucket = s3.Bucket('cw-dushpica-tests')
>>> for object_summary in my_bucket.objects.filter(Prefix='*.gz'):
... print(object_summary)
没有 output,它什么也没打印。
for object_summary in my_bucket.objects.filter(Prefix='/'):
... print(object_summary)
一样,一无所获。
我的前缀应该是什么样子?
filter方法的prefix参数表示
Prefix (string) -- 将响应限制为以指定前缀开头的键。
因此,您可以限制特定文件夹的路径,然后自行过滤文件扩展名。
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('your_bucket')
keys = []
for obj in bucket.objects.filter(Prefix='path/to/files/'):
if obj.key.endswith('gz'):
keys.append(obj.key)
print(keys)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.