KRi*_*ico 2 python amazon-s3 amazon-web-services boto3
我的 s3 存储桶有数千个文件。它们都在同一个“文件夹”中。所以 s3 前缀是相同的。我想使用 python boto3 获取包含某个单词的文件名列表。我不希望 boto3 调用发回所有文件名并让客户端过滤掉名称。我看到了使用“yield”和“.filter”的示例,但它们正在接收所有文件并使客户端做很多工作。
为了帮助更好地理解,如果我使用 AWS CLI:
aws --profile test s3api list-objects-v2 --bucket mybucket --prefix tmp/ --output json --query "Contents[?contains(Key, 'foobar')]"
Run Code Online (Sandbox Code Playgroud)
但我需要使用 boto3 发送请求,AWS 只需发送回带有“foobar”的文件名。
但我需要使用 boto3 发送请求,AWS 只需发送回带有“foobar”的文件名
您无法使用常规 boto3 s3 API 调用来执行此操作,因为这不是该 API 的工作方式。所以如果你不想先获取所有的名字,然后自己过滤掉,那么仅仅通过一个boto3请求是没有办法达到你想要的效果的。
唯一的帮助可能来自Amazon S3 库存。因此,您可以请求库存、获取生成的 CSV 文件并对其进行过滤。但你仍然必须自己过滤它。
| 归档时间: |
|
| 查看次数: |
671 次 |
| 最近记录: |