我可以使用boto3的筛选器工具在存储桶中查找类似于glob目录中文件的键(技术上是子键)吗?
我想获取具有这样的模式的键列表"key/**/<pattern>/**.gz"。
您可以使用exrex库根据正则表达式生成所有字符串并将其传递给 boto3。这是一个简单的示例,但您可以想象更复杂的情况:
例如:
import exrex
import boto3
session = boto3.Session() # profile_name='xyz'
s3 = session.resource('s3')
bucket = s3.Bucket('mybucketname')
prefixes = list(exrex.generate(r'api/v2/responses/2016-11-08/(2016-11-08T2[2-3]|2016-11-09)'))
objects = []
for prefix in prefixes:
print(prefix, end=" ")
current_objects = list(bucket.objects.filter(Prefix=prefix))
print(len(current_objects))
objects += current_objects
Run Code Online (Sandbox Code Playgroud)
这给出了输出:
api/v2/responses/2016-11-08/2016-11-08T22 1056
api/v2/responses/2016-11-08/2016-11-08T23 1056
api/v2/responses/2016-11-08/2016-11-09 24677
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4008 次 |
| 最近记录: |