#django #amazon-web-services #amazon-s3
#django #amazon-web-services #amazon-s3
Вопрос:
Мое веб-приложение использует django и s3. Когда я попытался получить доступ к моим изображениям s3 на AWS через общедоступную корзину. Все остальное работает, за исключением простого безопасного хранилища (s3). У меня эта ошибка:
<Error>
<style class="darkreader darkreader--safari-fallback">...</style>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>DAD37CB20E79C307</RequestId>
<HostId>
tuZqmK2Ei6dvMify2V2LoGmJxJ33UemNknXnH2DM4YzfqS3MNuvmLJJVq5SmUTr5976TkWpeHpc=
</HostId>
</Error>
https://framann-quilting-place.s3.us-east-2.amazonaws.com/media/products/carousel/SewingKit.jpg
Ответ №1:
необходимо сделать две вещи:
- в корзине должен быть включен статический хостинг веб-сайтов
- Откройте консоль Amazon S3 по адресу https://console.aws.amazon.com/s3 /.
- Выберите имя корзины, которую вы настроили как статический веб-сайт.
- Выберите разрешения.
- В разделе Заблокировать общедоступный доступ (настройки корзины) выберите Редактировать.
- Снимите флажок Блокировать весь общедоступный доступ и выберите Сохранить изменения.
- Политика корзины должна быть настроена на это:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::framann-quilting-place/*"
]
}
]
}
Более подробное объяснение здесь: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html
Ответ №2:
Похоже, это ведро не является общедоступным. Вам нужно сделать его общедоступным или убедиться, что у вас есть надлежащие разрешения (роль), прежде чем вызывать его.