{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionsToAAccount", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::XXXXXXX:root" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::DestinationS3Bucket", "arn:aws:s3:::DestinationS3Bucket/*" ] } ] }
答案 0 :(得分:10)
当您使用帐户A的凭据将帐户A中的一个S3存储桶中的文件复制到帐户B中的存储桶时,目标存储桶中文件的所有者将是帐户A.(帐户A是创建文件的主体在帐户B的桶中。)
在从源到目标存储区的文件复制期间,添加--acl bucket-owner-full-control
选项,以便帐户B可以控制文件。否则,您可能在帐户B的存储桶中有文件B无法访问或控制的文件。
另一种选择是使用帐户B的凭据从源复制到目标存储桶。这样,复制文件的所有者就是帐户B.
答案 1 :(得分:1)
您应该以这种方式一起替换文件和元数据-
aws s3 cp s3://yourbucket s3://yourbucket --recursive --acl bucket-owner-full-control --metadata-directive REPLACE
答案 2 :(得分:0)
John Hanely提供的解决方案有效,但这不会立即改变所有权。您需要执行单独的命令来更改它
第一步:
aws s3 cp s3://yourbucket s3://yourbucket --recursive --acl bucket-owner-full-control
第二步:
aws s3 cp s3://yourbucket s3://yourbucket --recursive --metadata-directive REPLACE
注意--meta-directive REPLACE