Ошибка записи в облако Amazon S3

  • Автор темы gor3
  • 26
  • Обновлено
  • 17, May 2024
  • #1
Всем привет, В моем приложении laravel 5 я использую облако Amazon s3, например:
 
"Resource": [
"arn:aws:s3:::nsnmed"
]
},
PHP: Но при загрузке файла я получил ошибку:
 Full content of the policy : { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::nsnmed" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::nsnmed/*" ] } ] } 
PHP: я искал еще и нашел это https://wogan.blog/2017/01/04/use-amazon-s3-with-laravel-5/

описание и некоторые другие ссылки. В соответствии с ним я создал корзину, пользователя IAM, группу и политику и присоединил своего пользователя IAM к группе и политике. Несколько принтскринов из моих отзывов об aws s3:
https://imgur.com/a/9UGO2

http://i.piccy.info/i9/2ad57860552544212f6dac64203b861a/1509953635/50972/1194037/1.png

https://imgur.com/a/oZyWN

https://imgur.com/a/bKq0Y

 S3Exception in WrappedHttpHandler.php line 192: Error executing "PutObject" on "[URL='https://lumtu.com/yti/ZAnnAZGZodHRwczovL25zbm1lZC5zMy11cy13ZXN0LTIuYW1hem9uYXdzLmNvbS91cGxvYWRzL09wZXJhdGlvbkZpbGUvMjQvMTUwOTk1MzIyNy0xL0yN']https://nsnmed.s3-us-west-2.amazonaws.com/uploads/OperationFile/24/1509953227-1.pdf[/URL]"; AWS HTTP error: Client error: `PUT [URL='https://lumtu.com/yti/ZAnnAZGZodHRwczovL25zbm1lZC5zMy11cy13ZXN0LTIuYW1hem9uYXdzLmNvbS91cGxvYWRzL09wZXJhdGlvbkZpbGUvMjQvMTUwOTk1MzIyNy0xL0yN']https://nsnmed.s3-us-west-2.amazonaws.com/uploads/OperationFile/24/1509953227-1.pdf[/URL]` resulted in a `403 Forbidden` response: <?xml version="1.0" encoding="UTF-8"?> <Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>F59F73 (truncated...) AccessDenied (client): Access Denied - <?xml version="1.0" encoding="UTF-8"?> <Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>F59F7304DABAE9F7</RequestId><HostId>hFPo7S53x3DpmnndlKNe7hR5r1raq+qKn4asoNNVTOdGwS7KlQ0RmyVRE8LCYUOGedJjNRZuiOk=</HostId></Error> in WrappedHttpHandler.php line 192 at WrappedHttpHandler->parseError(array('exception' => object(ClientException), 'connection_error' => false, 'response' => object(Response)), object(Request), object(Command), array()) in WrappedHttpHandler.php line 97 at WrappedHttpHandler->Aws\{closure}(array('exception' => object(ClientException), 'connection_error' => false, 'response' => object(Response))) in Promise.php line 203 at Promise::callHandler('2', array('exception' => object(ClientException), 'connection_error' => false, 'response' => object(Response)), array(object(Promise), object(Closure), object(Closure))) in Promise.php line 174 at Promise::GuzzleHttp\Promise\{closure}(array('exception' => object(ClientException), 'connection_error' => false, 'response' => object(Response))) in RejectedPromise.php line 40 at RejectedPromise::GuzzleHttp\Promise\{closure}() in TaskQueue.php line 47 at TaskQueue->run() in CurlMultiHandler.php line 96 at CurlMultiHandler->tick() in CurlMultiHandler.php line 123 at CurlMultiHandler->execute(true) in Promise.php line 246 at Promise->invokeWaitFn() in Promise.php line 223 at Promise->waitIfPending() in Promise.php line 267 at Promise->invokeWaitList() in Promise.php line 225 at Promise->waitIfPending() in Promise.php line 267 at Promise->invokeWaitList() in Promise.php line 225 at Promise->waitIfPending() in Promise.php line 62 at Promise->wait() in S3ClientTrait.php line 33 at S3Client->upload('nsnmed', 'uploads/OperationFile/24/1509953227-1.pdf', '%PDF-1.3 %���� 194 0 obj << /Linearized 1 /L 1257876 /H [ 993 279 ] /O 197 /E 263192 /N 33 /T 1253877 >> endobj xref 194 11 0000000016 00000 n 0000000598 00000 n 0000000655 00000 n 0000001272 00000 n 0000001411 00000 n 0000001512 00000 n 0000001684 00000 n 00000017 
PHP: и https://imgur.com/a/xafqH

Подскажите, пожалуйста, какой вариант я пропустил?

P.S. Создавая нового пользователя, я установил флажок «Программный доступ» и оставил флажок «Доступ к консоли управления AWS» не отмеченным. Описывая политику, я написал:
 use Storage; ... $s3 = Storage::disk('s3'); $uploaded = $s3->put($upload_path, file_get_contents($this->file), 'public'); 
PHP: Из моего ведра. Я не нашел, где указать, где у пользователя есть права на доступ к моей корзине? Если есть такой вариант? Спасибо!

gor3


Рег
02 Aug, 2012

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966

Интересно