繁体   English   中英

如何过滤 Boto3 s3 对象?

[英]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.

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