由于Glacier Deep's expensive support用于小对象,我正在编写一个归档程序。如果能够让boto3
给予我一个bucket中尚未在所需存储类中的对象列表,那将对我很有帮助。感谢this answer,我知道我可以在shell中做到这一点:
aws s3api list-objects --bucket $BUCKETNAME --query 'Contents[?StorageClass!=`DEEP_ARCHIVE`]'
字符串
有没有一种方法可以将query
参数传递到boto3
中?我还没有深入研究源代码,但我认为它本质上是命令行工具上的一个 Package 器-但我找不到使用这种技术的文档或示例。
2条答案
按热度按时间6ss1mwsb1#
有没有办法把这个查询参数传递给boto3?
遗憾的是,你不能这样做,因为
--query
选项是特定于AWS CLI的。但是boto3是Python AWS SDK,所以你可以很容易地对其输出进行后处理,以获得与CLI相同的结果。--query
选项基于jmespath。所以如果你真的想在你的python中使用jmespath
,你可以使用jmespath package。bkkx9g8r2#
使用Athena查询S3库存大小列。
https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory-athena-query.html
自2022年7月起,S3 Lifecycles拥有Object Size filter。