Доступ к пространству Digitalocean запрещен
Я создал пространство для хранения цифрового океана. url пространства выглядит следующим образом
https://storagespace.nyc3.digitaloceanspaces.com
Однако, когда я нажимаю на url, чтобы открыть его в браузере, я получаю следующую ошибку:
<Error>
<Code>AccessDenied</Code>
<BucketName>storagespace</BucketName>
<RequestId>tx000000000000001618a5e-0081246af3-1805687a-nyc3c</RequestId>
<HostId>1805987a-nyc3c-nyc3-zg03</HostId>
</Error>
Я понятия не имею, что означает эта ошибка или почему она у меня возникает. Я подключил ведро s3 к моему сайту django, и статические файлы не передаются браузеру, вместо этого я получаю ошибку 403 forbidden. Пожалуйста, как мне убрать эту ошибку access denied
?
tl;dr следуйте их официальному руководству: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-scalable-django-app-with-digitalocean-managed-databases-and-spaces
К сожалению, мы не знаем, какие пакеты вы используете (например, используете ли вы Django-storages для передачи статических файлов на S3?). У меня нет опыта работы с Digital Ocean, но вот некоторые вещи, которые можно попробовать:
- Установите Django-storages. Создайте IAM роль в AWS, которая дает полный доступ к S3 только этому ведру. К сожалению, у меня нет опыта работы с цифровым океаном, поэтому я понятия не имею, сможете ли вы это сделать.
- Посмотрите на сайте digital ocean, есть ли у них собственный способ загрузки статических файлов Django. Например, вот официальный учебник Digital Ocean, предоставленный Digital Ocean для Django с Django-storages: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-scalable-django-app-with-digitalocean-managed-databases-and-spaces .
Как вы можете видеть в учебнике, у них есть эти настройки, которые, я полагаю, предоставил вам Digital Ocean:
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.1/howto/static-files/
# Moving static assets to DigitalOcean Spaces as per:
# https://www.digitalocean.com/community/tutorials/how-to-set-up-object-storage-with-django
AWS_ACCESS_KEY_ID = 'your_spaces_access_key'
AWS_SECRET_ACCESS_KEY = 'your_spaces_secret_key'
AWS_STORAGE_BUCKET_NAME = 'your_space_name'
AWS_S3_ENDPOINT_URL = 'spaces_endpoint_URL'
AWS_S3_CUSTOM_DOMAIN = 'spaces_edge_endpoint_URL'
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
AWS_LOCATION = 'static'
AWS_DEFAULT_ACL = 'public-read'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATIC_URL = '{}/{}/'.format(AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
STATIC_ROOT = 'static/'