我有一个.zip文件(在S3存储桶中),该文件需要在单个帐户内每个区域的S3存储桶中结束。
这些存储桶中的每个存储桶都有相同的存储桶策略,允许我的帐户将文件上传到其中,并且它们都遵循相同的命名约定,如下所示: foobar- {region}
例如:foobar-us-west-2
有没有一种方法可以在不手动将控制台中的文件拖动到每个存储桶中的情况下,或者不使用aws s3api copy-object命令19次?随着文件的更新,这种情况可能需要相当频繁地发生,因此我正在寻找一种更有效的方法。
我想到的一种方法是制作一个包含我需要的所有19个区域的数组的lambda,然后遍历它们以创建19个特定于区域的存储桶名称,每个存储桶名称都将对象复制到其中。
有更好的方法吗?
答案 0 :(得分:0)
只需将其放入bash函数即可。通过使用aws cli和jq,您可以执行以下操作;
aws s3api list-buckets | jq -rc .Buckets[].Name | while read i; do
echo "Bucket name: ${i}"
aws s3 cp your_file_name s3://${i}/
done
答案 1 :(得分:0)
一些选项:
copy_object()
将文件从一个S3存储桶复制到另一个S3存储桶比上传19次更为有效。只需上传到第一个存储桶,然后从那里复制到其他位置即可。