Как настроить 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.

Я очень ценю вашу поддержку.

Я ожидал, что только пользователь, прошедший аутентификацию, может получить доступ к личным файлам.

Вернуться на верх