我正在尝试从最近上传的S3存储桶中获取对象列表。但是只有Contents [?LastModified> ='yyyy-mm-hh']比较有效 在查询中。当我尝试使用Contents [?LastModified> ='yyyy-mm-hh HH:MM:SS']时,它仅比较yyyy-mm-dd给出了当天已更新的列表,并且在尝试获取文件时最近添加了带有时间戳HH:MM:SS的时间戳,它提供了当天添加的所有对象。
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
}
答案 0 :(得分:1)
解决方案:
尝试使用以下日期格式:
"Contents[?LastModified>='2019-07-26T17:49:00.000Z'][].{Key: Key,LastModified: LastModified}"