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

时间:2018-11-15 22:54:35

标签: amazon-s3 aws-lambda

我收到此错误:

AllAccessDisabled: All access to this object has been disabled

在我的节点Lambda函数中执行s3.copyObject函数时。

是由于源存储桶上的权限不足还是由于目标存储桶上的权限不足而引发此错误?

2 个答案:

答案 0 :(得分:3)

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

之所以会发生,是因为账单未付,也可能是由于其他原因...

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

s3.copyObject期望CopySource是这样:

'/' + source_bucket_name + '/' + object_key

如果您忽略了这一点并提供了类似/uploads/funny/cat.png的内容,那么您将确切地得到此错误,因为在这里uploads是存储桶名称,funny/cat.png是对象键。 。和the bucket named uploads恰好是一个返回AllAccessDisabled错误的存储桶...因此,这里的真正错误是您访问了错误的存储桶。

答案 1 :(得分:0)

如果您的存储桶名称与代码中的存储桶名称不匹​​配,也会抛出 403 forbidden 错误。确保拼写正确