在 S3 存储桶之间复制时抛出“AllAccessDisabled:对此对象的所有访问已被禁用”错误

问题描述 投票:0回答:3

我收到此错误:

AllAccessDisabled: All access to this object has been disabled

在我的节点 Lambda 函数中执行

s3.copyObject
函数时。

这个错误是源Bucket权限不够,还是目标Bucket权限不够?

amazon-s3 aws-lambda
3个回答
25
投票

此错误意味着您正在尝试访问已被 AWS 锁定的存储桶,以便任何人都无法访问它,无论权限如何 - 所有访问已被禁用。

发生这种情况的原因可能是账单未付,也可能是由于其他原因......

但是... 通常这意味着您在代码中犯了错误并且没有访问您认为的存储桶。

s3.copyObject
期望
CopySource
是这样的:

'/' + source_bucket_name + '/' + object_key

如果您忽略这一点并提供类似

/uploads/funny/cat.png
的内容,您将会收到此错误,因为在这里,
uploads
是存储桶名称,
funny/cat.png
是对象键...以及 名为
uploads 的存储桶
恰好是一个返回
AllAccessDisabled
错误的存储桶...所以这里真正的错误是您访问了错误的存储桶。


4
投票

如果你的bucket名称与代码中的bucket名称不匹配,也会抛出403禁止的错误。确保拼写正确


0
投票

除上述几点外,检查订阅状态。

© www.soinside.com 2019 - 2024. All rights reserved.