因为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/