Команда AWS s3api для получения объекта списка с последним измененным значением, превышающим гггг-мм-дд ЧЧ: ММ: СС - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь получить список объектов из корзины S3, которые недавно были загружены.Но в запросе работает только сравнение содержимого [? LastModified> = 'yyyy-mm-hh'].Когда я пытался с Contents [? LastModified> = 'гггг-мм-чч ЧЧ: ММ: СС'], то сравнивался только гггг-мм-дд, давая список, который был обновлен в тот день, и когда я пытался выбрать файлы, которыенедавно добавил метку времени ЧЧ: ММ: СС, в которой указаны все объекты, добавленные в этот день.

echo "###################### Previous Run : $previous_run"
dat2=$(date -d "$previous_run" "+%Y-%m-%d %H:%M:%S")

echo $dat2

get_Latest_Files()
{
        #get new files from s3
        json_var=$(aws s3api list-objects --bucket "$input_bucket" --prefix "$input_prefix" --query "Contents[?LastModified>='$dat2'].{Key: Key,LastModified: LastModified}" --output text)

        echo "$json_var"
        if [ -z "$json_var" ]
        then
            echo "No latest files to Process...!"
            exit
        else
                #grep for tgz files
                echo $json_var  | tr " " "\n" | egrep -i "(\.tgz)|(\.tar\.gz)$" | awk -v prefix="s3://$input_bucket/" '{print prefix $0}' > input_files.txt
                cat input_files.txt
        fi
}

1 Ответ

0 голосов
/ 07 августа 2019

Решение:

Попробуйте использовать этот формат даты:

"Contents[?LastModified>='2019-07-26T17:49:00.000Z'][].{Key: Key,LastModified: LastModified}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...