amazon-web-services - AWS CLI 按特定日期列出对象
问题描述
我正在尝试制作一个 groovy 脚本,列出过去三天上传的 AWS S3 上的对象。我在运行脚本的代理上安装了 AWS CLI。我发现按日期列出对象的命令如下:
def cmd = "aws s3api list-objects --bucket (name of bucket) --query \"Contents[?LastModified>= '2018-10-16'].{Key: Key, LastModified: LastModified }\""
当我直接从腻子会话在代理上运行此命令时,它运行良好并正确列出了对象。但是当我尝试从 groovy 脚本执行相同的命令时,我收到以下错误:
--query "Contents[?LastModified: Bad jmespath expression: Unclosed" delimiter: "Contents[?LastModified ^
我试图用单引号替换第一个和最后一个引号,但没有奏效。我尝试对内容之前和之后的引号做同样的事情,LastModified
但效果不佳。我尝试传递Contents[?LastModified>= '2018-10-16'].{Key: Key, LastModified: LastModified }
给一个字符串变量并在之后的命令中传递它的值,--query
但这也不起作用。
解决方案
请试试:
然后尝试:
def date = new Date().format('yyyy-MM-dd')
def cmd = ['aws', 's3api', 'list-objects', '--bucket', 'Bucket-Name', '--query', "Contents[?LastModified>='${date}'].{Key: Key , LastModified: LastModified}"]
请记住始终将命令作为列表而不是字符串传递。
推荐阅读
- typescript - 如何将 typeof 与泛型一起使用?
- angular-material - 如何使用剧作家获得垫选元素的价值?
- file - 将文件夹另存为文件
- java - 有没有办法在 Apache Wicket 中创建一个带有 HTML 模板的 FormComponent
- php - cpanel 给出错误 laravel :您的锁定文件不包含兼容的软件包集。请运行作曲家更新
- json - Recharts:是否可以将数据和配置作为 JSON 来创建图表?
- c# - c#多维数组数字排序
- reactjs - useEffect 依赖导致无限循环
- python-3.x - 将excel文本框读入熊猫数据框
- python - 错误:WebElement 没有属性替换