Мой сайт Django позволяет пользователям загружать фотографии. Когда корзина s3 находится в открытом доступе, мультимедийный контент прекрасно загружается на сайт. Однако, как только я блокирую все общедоступный доступ, контент больше не загружается, и отображается ошибка 403. В своем коде я добавил значения, необходимые для проверки подлинности запросов. Там нет политики корзины или каких-либо конфигураций CORS. Я пробовал несколько разных предложений из блогов и учебных пособий, но, похоже, ничего не работает.
У меня есть пользователь, у которого есть программный доступ, и он установил секретные переменные в среде heroku и все еще получает ошибку 403. Я очень старался установить секретные переменные, но все еще безуспешно.
settings.py
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.environ.get('AWS_STORAGE_BUCKET_NAME')
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
MEDIA_LOCATION = 'MediaStorage'
MEDIA_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, MEDIA_LOCATION)
MEDIA_FILE_STORAGE = 'MediaStorage'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
STATIC_LOCATION = 'static'
STATICFILES_LOCATION = 'StaticStorage'
STATIC_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, STATIC_LOCATION)
django_heroku.settings(locals())
storage_backends.py
from storages.backends.s3boto3 import S3Boto3Storage
from django.conf import settings
class StaticStorage(S3Boto3Storage):
location = settings.STATICFILES_LOCATION
class MediaStorage(S3Boto3Storage):
location = settings.MEDIA_FILE_STORAGE
file_overwrite = False
custom_domain = False
Все статические файлы загружаются нормально, но носителифайлы не загружаются вообще. Я ожидаю загрузки файлов при отображении их на веб-странице просмотра. однако я просто получаю 403 запрещенную ошибку.