Список объектов AWS CLI к определенной дате - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь создать отличный скрипт, который перечисляет объекты на AWS S3, которые были загружены за последние три дня.Я установил интерфейс командной строки AWS на агенте, на котором выполняется сценарий.Я нашел команду, которая перечисляет объекты по дате:

def cmd = "aws s3api list-objects --bucket (name of bucket) --query \"Contents[?LastModified>= '2018-10-16'].{Key: Key, LastModified: LastModified }\""

Когда я запускаю эту команду на агенте непосредственно из сеанса замазки, она работает нормально и перечисляет объекты правильно.Но когда я пытаюсь выполнить ту же команду из скрипта groovy, я получаю следующую ошибку:

Неверное значение для --query "Contents [? LastModified: Неверное выражение jmespath: Unclosed" delimiter: "Содержание [? LastModified ^

Я пытался заменить первые и последние кавычки одинарными кавычками, но не получилось. Я пытался сделать то же самое с кавычками до содержимого и после LastModifiedно не сработало. Я попытался передать Contents[?LastModified>= '2018-10-16'].{Key: Key, LastModified: LastModified } в строковую переменную и передать ее значение в команде после --query, но это тоже не сработало.

1 Ответ

0 голосов
/ 22 октября 2018

Пожалуйста, попробуйте:

Затем попробуйте:

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}"]

Не забудьте всегда передавать команду в виде списка, а не строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...