我正在试图弄清楚s3cmd命令将按日期从桶中下载文件是什么,所以例如我有一个名为“test”的存储桶,并且在该存储桶中有来自不同日期的不同文件。我想获取昨天上传的文件。命令是什么?
答案 0 :(得分:1)
没有一个命令可以让你这样做。你必须写一些像这样的东西。或者使用允许您执行此操作的SDK。下面的脚本是一个示例脚本,它将从过去30天获取S3文件。
<img src="images/contact.png" width="20%">
答案 1 :(得分:0)
我喜欢s3cmd但是使用单行命令,我更喜欢aws cli和jq JSon处理器的JSon输出
该命令看起来像
aws s3api list-objects --bucket "yourbucket" |\
jq '.Contents[] | select(.LastModified | startswith("yourdate")).Key' --raw-output |\
xargs -I {} aws s3 cp s3://yourbucket/{} .
基本上是脚本的作用
Contents
数组并选择LastModified
值以您的模式开头的元素(您需要更改),获取Key
的{{1}} s3对象并添加--raw-output
,以便从值如果你想进一步自动化,可以从命令行获取昨天
for mac os
$ export YESTERDAY=`date -v-1w +%F`
$ aws s3api list-objects --bucket "ariba-install" |\
jq '.Contents[] | select(.LastModified | startswith('\"$YESTERDAY\"')).Key' --raw-output |\
xargs -I {} aws s3 cp s3://ariba-install/{} .
对于linux操作系统(或其他我不熟悉的bash风格)
$ export YESTERDAY=`date -d "1 day ago" '+%Y-%m-%d' `
$ aws s3api list-objects --bucket "ariba-install" |\
jq '.Contents[] | select(.LastModified | startswith('\"$YESTERDAY\"')).Key' --raw-output |\
xargs -I {} aws s3 cp s3://ariba-install/{} .
现在您可以了解是否要将YESTERDAY
变量更改为具有不同类型的日期