同步存储桶时,某些文件“访问被拒绝”

同步存储桶时,某些文件“访问被拒绝”

我用来awscli同步 2 个存储桶(同一个帐户):

aws s3 sync --only-show-errors s3://bucket-1 s3://bucket-2

但对于某些文件我收到权限错误:

copy failed: s3://bucket-1/dirname/file.flac to s3://bucket-2/dirname/file.flac An error occurred (AccessDenied) when calling the UploadPartCopy operation: Access Denied

(在某些情况下,失败的操作是CopyObject

这似乎只发生在.flac文件中。所有其他文件都是.mp3s,所以我能想到的唯一区别就是文件大小。


因为我使用的是具有完整 s3 权限的用户,所以我不明白为什么会发生这种情况(或者如何修复这个问题)。

答案1

可能是目的属于不同的帐户?

当 AWS 账户 AAA 中的存储桶可由 AWS 账户 BBB 写入时,可能会发生这种情况,例如通过BucketPolicy--acl bucket-owner-full-control,但作者(在BBB)上传时没有指定权限。

使用以下方法检查对象的 ACL:

aws s3api get-object-acl --bucket bucket-1 --key dirname/file.flac

目标也类似 - 如果现有对象归其他帐户所有,则无法覆盖它。这就是UploadPartCopy失败的原因。

希望有所帮助。

答案2

对我来说它失败了,因为 UploadPartCopy 操作需要额外的权限然后进行常规复制,我将策略更改为 s3:List* 并且它起作用了。

相关内容