我是脚本编写和编写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'
答案 0 :(得分:2)
此脚本找到最后修改的对象,然后将其复制。
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
答案 1 :(得分:-1)