Shell脚本 - 如何将最后修改的AWS S3对象从一个桶复制到另一个桶?

9 浏览
0 Comments

Shell脚本 - 如何将最后修改的AWS S3对象从一个桶复制到另一个桶?

我刚开始学习脚本编写,并且正在编写一个Shell脚本来将AWS S3对象从一个AWS账户的存储桶复制到另一个存储桶。管道上传zip文件(.zip)到存储桶。该Shell脚本应该只复制最后修改的对象(文件)。我知道在Shell脚本中,您可以基于通配符匹配递归查找文件,并从S3 CLI获取最后上传的对象。有没有更优雅和有效的方法来实现呢?

# 从一个存储桶复制到另一个存储桶的常规方式

aws s3 cp s3://源存储桶/对象-v2.2.7.zip s3://目标存储桶/.

# 使用--recursive参数复制文件

aws s3 ls $源存储桶 --recursive | sort | tail -n 1 | awk '{print $4}'

get_object=`aws s3 ls $源存储桶 --recursive | sort | tail -n 1 | awk '{print $4}'`

aws s3 cp s3://$get_object s3://目标存储桶

echo '成功将文件上传到目标存储桶'

0
0 Comments

Shell 脚本 - 如何将最后修改的 AWS S3 对象从一个存储桶复制到另一个存储桶?

问题出现的原因:

用户希望在 AWS S3 存储桶之间复制最后修改的对象。然而,AWS S3 并没有直接提供这样的功能。因此,用户需要使用 Shell 脚本来实现此目标。

解决方法:

用户可以使用以下 Shell 脚本来复制最后修改的 AWS S3 对象:

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

这个脚本首先通过 `aws s3api list-objects` 命令查找指定存储桶中最后修改的对象。然后,使用 `sort_by(Contents, &LastModified)[-1].Key` 查询参数来获取最后修改对象的键。接下来,使用 `aws s3 cp` 命令将最后修改的对象从源存储桶复制到目标存储桶。

通过使用这个 Shell 脚本,用户可以实现将最后修改的 AWS S3 对象从一个存储桶复制到另一个存储桶的目标。

0
0 Comments

问题:如何将最后修改的AWS S3对象从一个存储桶复制到另一个存储桶?

原因:用户需要将最后修改的AWS S3对象从一个存储桶复制到另一个存储桶。

解决方法:

1. 参考这里获取S3中最后修改的对象。

2. 获取到对象后,可以使用循环,在循环内部调用aws s3 cp命令来复制文件。

3. 请告诉我是否对您有用。

0