[英]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.