我试图使用以下命令基于lastmodified过滤S3对象-
在LastModified>=2018-12-20
中像这样--query
手动提供日期后,效果很好。
aws s3api list-objects --bucket $bucketNameToUse --query 'Contents[?LastModified>=`2018-12-20`].{Key: Key, LastModified: LastModified}' --output text
但是当我尝试使用Date变量代替2018-12-20
时,如下所示-
echo $DATEVARIABLE
2018-12-20
aws s3api list-objects --bucket $bucketNameToUse --query 'Contents[?LastModified > `$(DATEVARIABLE)`].{Key: Key, LastModified: LastModified}' --output text
它打印了存储桶中的每个对象,我尝试了所有可能的方法来使用bash变量,但是没有用。不知道我在这里想念的是什么。任何建议。
答案 0 :(得分:1)
AWS CLI使用JMESPath作为--query选项。在以双引号作为字符串传递查询之后,以下对我有用。
--query "Contents[?LastModified>='${DATEVARIABLE}'].[Key, LastModified]"
答案 1 :(得分:0)
我通过反引号(`)获得了解决方案-
aws s3api list-objects --bucket $bucketNameToUse --query 'Contents[?LastModified > `'$DATEVARIABLE'`].{Key: Key, LastModified: LastModified}' --output text