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

Sea*_*lus 4 amazon-s3 aws-lambda

我收到此错误:

AllAccessDisabled: All access to this object has been disabled
Run Code Online (Sandbox Code Playgroud)

当执行s3.copyObject在我的节点lambda函数功能。

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

Mic*_*bot 8

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

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

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

s3.copyObject期望CopySource是这样的:

'/' + source_bucket_name + '/' + object_key
Run Code Online (Sandbox Code Playgroud)

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