我需要在另一个帐户上将数据从S3存储桶移动到另一个存储桶。 我可以通过运行来同步存储桶:
aws s3 sync s3://my_old_bucket s3://my_new_bucket --profile myprofile
myprofile 内容:
[profile myprofile]
aws_access_key_id = old_account_key_id
aws_secret_access_key = old_account_secret_access_key
我还在原点和目的地都制定了政策。 Origins允许列出和获取,目的地允许发布。
命令工作正常,我可以登录到其他帐户并查看文件。但我无法取得所有权或公开新的广告。我需要能够在旧帐户中进行更改。新帐户与新帐户完全无关。看起来文件保留了权限,它们仍归旧帐户所有。
如何设置权限以获得使用新帐户的文件的完全访问权限?
答案 0 :(得分:1)
“看起来文件正在保留权限,但仍由旧帐户拥有。”
对象的上传者拥有它。
由于新存储桶由新帐户拥有,因此您可以更新存储桶ACL,以通过传递Grants选项来授予存储桶所有者对对象的完全控制权限。 1
<script>
//To validate the form
function validateForm() {
var a = document.forms["Order"]["Fname"].value;
var b = document.forms["Order"]["Lname"].value;
var c = document.forms["Order"]["topic"].value;
if (a == "" || b == "" || c == "") {
alert("Everything must be filled out");
return false;
}
}
</script>
您可以从AWS S3控制台查看存储区所有者的规范ID。 2
答案 1 :(得分:1)
将--acl bucket-owner-full-control
添加到CLI调用中,因此您的命令应如下所示:
aws s3 sync s3://my_old_bucket s3://my_new_bucket --acl bucket-owner-full-control --profile myprofile
bucket-owner-full-control
是一个罐头ACL(简而言之,罐头ACL是预定义的授权),请检查此内容以查看还有哪些其他选项以及它们在S3 Canned ACL documentation中的作用。
这将导致对象归目标存储桶所有。