Как настроить django 5.0.3 для использования приватных/публичных медиафайлов на AWS - s3
Сегодня я чувствую себя очень расстроенным, после 3 дней попыток реализовать django с помощью amazon s3 с медиафайлом в приватном режиме.
В прошлом мои приложения были настроены по следующей ссылке и всегда работали нормально:
https://unfoldadmin.com/blog/configuring-django-storages-s3/
Сейчас для некоторых reasson не удается достичь goald (некоторые медиа файлы должны быть приватными) Я понимаю, что с django 4.2 существует новый способ настройки хранилищ, но все же вы можете продолжать использовать старый вариант, Честно говоря, я не уверен, что это будет причиной проблемы:
https://docs.djangoproject.com/en/5.0/ref/settings/
{
"default": {
"BACKEND": "django.core.files.storage.FileSystemStorage",
},
"staticfiles": {
"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage",
},
}
versions:
Phyhon: 3.12.2
asgiref==3.8.1
boto3==1.34.72
botocore==1.34.72
Django==5.0.3
django-storages==1.14.2
jmespath==1.0.1
python-dateutil==2.9.0.post0
s3transfer==0.10.1
six==1.16.0
sqlparse==0.4.4
tzdata==2024.1
urllib3==2.2.1
Configuration on AWS:
Object Ownsership:ACls enabled
Block all public access: off
Bucket policy:
{
"Version": "2012-10-17",
"Id": "Policy_id",
"Statement": [
{
"Sid": "my_sid",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket_name/*"
}
]
}
Примечание: Я должен сказать, что ACLs работает, потому что после загрузки частного файла, если вы попытаетесь получить URL содержимого, API сгенерирует длинный URL, который истекает через несколько минут, однако для проверки я просто пытаюсь получить доступ к файлу напрямую, без параметров, но я никогда не получаю стандартное сообщение об ошибке AWS.
Я очень ценю вашу поддержку.
Я ожидал, что только пользователь, прошедший аутентификацию, может получить доступ к личным файлам.