从AWS CLI响应中消除元素

时间:2018-12-14 23:32:05

标签: amazon-s3 aws-cli jmespath

注意:我实际上是在Python和Boto3库中尝试此操作,但是我将使用AWS CLI解释我要做什么。

我正在对AWS中的存储桶进行list-object-versions调用...

aws s3api list-object-versions --bucket averyuniquebucketname --delimiter "/"

响应类似于以下内容...

{
    "DeleteMarkers": [

       ...snip...

    ],
    "CommonPrefixes": [

       ...snip...

    ],
    "Versions": [

       ...snip...

    ]
}

我要告诉AWS不要使用DeleteMarkers返回任何结果。

关于如何使用--query和JMESPath消除DeleteMarkers但在响应中保留CommonPrefixes和Versions的任何想法?

1 个答案:

答案 0 :(得分:0)

正如Michael - sqlbot所指出的那样,aws cli --query是在客户端运行的东西,因此它不会为“删除” DeleteMarkers节省任何费用。不过,您可以在CLI中使用--query '{CommonPrefixes: CommonPrefixes, Versions: Versions} ...但是在Python / boto3中,仅查看您感兴趣的内容更有意义,或者如果真的想使用Python del或构造一个新的字典(绝对没有理由使用jmespath)。