python-3.x - 使用 Boto3 对 Amazon S3 运行查询

标签 python-3.x amazon-web-services amazon-s3 boto3

因为Glacier Deep's expensive support对于小对象,我正在写一个存档器。如果能够让 boto3 给我一个存储桶中尚未在所需存储类中的对象列表,这对我来说是最有帮助的。感谢this answer ,我知道我可以在 shell 中执行此操作:

aws s3api list-objects --bucket $BUCKETNAME --query 'Contents[?StorageClass!=`DEEP_ARCHIVE`]'

有没有办法将 query 参数传递给 boto3?我还没有深入研究源代码,但我认为它本质上是命令行工具的包装器 - 但我无法在任何地方找到使用此技术的文档或示例。

最佳答案

Is there a way to pass that query parameter into boto3?

遗憾的是,您不能这样做,因为 --query 选项是特定 AWS CLI。但 boto3 是 Python AWS SDK,因此您可以非常轻松地对其输出进行后处理以获得与 CLI 相同的结果。

--query 选项基于 jmespath .所以如果你真的想在你的python中使用jmespath,你可以使用jmespath package .

关于python-3.x - 使用 Boto3 对 Amazon S3 运行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68969674/

相关文章:

python - 使用正则表达式替换文本文件中的多个条目

node.js - AWS 证书 "not safe",即使所有数据都通过 HTTPS 提供

amazon-web-services - AWS CloudFront 访问 S3 存储桶被拒绝

amazon-web-services - Terraform 模板在手动更改 EBS 卷后重新创建所有资源

node.js - AWS lambda 函数错误 - 无法导入模块 'index' : Error

Amazon S3 上的 URL 指纹缓存

amazon-s3 - AWS Glue - 从时间戳字段创建日期分区

python - 如何处理与坐标的碰撞? (在 python 中)

python - 如何阅读行中的特定单词?

python-3.x - 为什么standardscaler和normalizer需要不同的数据输入?