繁体   English   中英

执行“ GetObjectAcl”时出错,导致403禁止访问被拒绝

[英]Error executing “GetObjectAcl” resulted in a 403 Forbidden Access Denied

我正在尝试通过Laravel 5.5 / PHP 7将图像从一个文件夹复制到Amazon S3中的另一个文件夹

$s3 = Storage::disk('s3');
$s3->copy('old_path/image.jpg', 'new_path/image.jpg');

而且我得到了错误:

Aws \ S3 \ Exception \ S3Exception
Error executing "GetObjectAcl" on "https://mybucket.s3.us-east-2.amazonaws.com/old_path/image.jpg?acl"; AWS HTTP error: Client error: `GET https://mybucket.s3.us-east-2.amazonaws.com/old_path/image.jpg` resulted in a `403 Forbidden` response: <?xml version="1.0" encoding="UTF-8"?> <Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>xxx (truncated...) AccessDenied (client): Access Denied - <?xml version="1.0" encoding="UTF-8"?> <Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>xxx</RequestId><HostId>xxx</HostId></Error>

我注意到查询acl已自动附加到old_path/image.jpg ,您可以在错误消息https://mybucket.s3.us-east-2.amazonaws.com/old_path/image.jpg?acl看到它https://mybucket.s3.us-east-2.amazonaws.com/old_path/image.jpg?acl ,我怀疑这是导致错误的原因,因为可以通过URL https://mybucket.s3.us-east-2.amazonaws.com/old_path/image.jpg访问该图像,但不能通过该访问?acl结束。

我不知道该怎么解决。 任何想法?!

通常,当您的Bucket-ACL不正确时会出现。 您的用户没有足够的权限来获取对象ACL。 您必须生成适当的存储桶策略并将其插入到存储桶中。

您可以使用生成器来创建策略。 如果您有一个,则可以扩展它们。

https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html

有时,为已定义的用户设置正确的权限有点复杂,您必须尝试一下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM