如何解决Shell脚本-如何将最后修改的AWS S3对象从一个存储桶复制到另一个存储桶?
我是脚本编写和编写Shell脚本的新手,可以将AWS S3对象从一个AWS账户存储桶复制到另一个存储桶?管道将zip文件(.zip)上传到存储桶。外壳程序脚本应仅复制最后修改的对象(文件)。我知道在shell脚本中,您可以基于通配符匹配来递归查找文件,并从S3 CLI获取最后上传的对象。有没有更优雅,更有效的方法呢?
# Normal way of copying from one bucket to another
aws s3 cp s3://source-bucket/object-v2.2.7.zip s3://destination- bucket/.
# Using the --recursive parameter to copy file
aws s3 ls $source-bucket --recursive | sort | tail -n 1 | awk '{print $4}'
get_object = `aws s3 ls $source-bucket --recursive | sort | tail -n 1 | awk '{print $4}'`
aws s3 cp s3://$get_object s3://destination-bucket
echo 'Successfully uploaded file to Destination Bucket'
解决方法
此脚本找到最后修改的对象,然后将其复制。
SOURCE_BUCKET=bucket1
DEST_BUCKET=bucket2
LAST=$(aws s3api list-objects --bucket $BUCKET --query 'sort_by(Contents,&LastModified)[-1].Key' --output text)
aws s3 cp s3://$SOURCE_BUCKET/$LAST s3://$DEST_BUCKET
,
我想您可以参考here来获取S3中最后修改的对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。