Сложность хранения статических файлов на S3 с помощью настройки STORAGES в django >=4.2

Для хранения файлов на AWS S3 в django 4.2 появился параметр словаря STORAGES, заменивший отдельные переменные настройки DEFAULT_FILE_STORAGE и STATICFILES_STORAGE, как объясняется в django-storages documentation. Я задаю этот вопрос, потому что не нашел хороших ресурсов об этой «новой» настройке словаря STORAGES.

В документации, к сожалению, мало информации о том, каким должно быть содержимое этого словаря STORAGES:

STORAGES = {
    "default": {
        "BACKEND": "storages.backends.s3.S3Storage",
        "OPTIONS": {
          ...your_options_here
        },
    },
}

добавляя это к...

размещать статические файлы на S3 через collectstatic на Django >= 4.2 вы должны включить ключ staticfiles (на том же уровне, что и default)

Обратившись к другому источнику, я определил следующий словарь STORAGES в своем файле settings.py:

DEFAULT_STORAGE_BACKEND = "storages.backends.s3.S3Storage"
DEFAULT_STORAGE_OPTIONS = {
    "access_key": os.getenv("S3_ACCESS_KEY"),
    "secret_key": os.getenv("S3_SECRET_KEY"),
    "bucket_name": os.getenv("S3_BUCKET"),
    "region_name": os.getenv("S3_REGION"),
}
STORAGES = {
    "default": {
        "BACKEND": DEFAULT_STORAGE_BACKEND,
        "OPTIONS": DEFAULT_STORAGE_OPTIONS,
    },
    "staticfiles": {
        "BACKEND": "storages.backends.s3.S3StaticStorage"
    }
}

Но при попытке собрать мои статические файлы я получаю следующую ошибку:

Это в чем-то похоже на ошибку, описанную здесь, но эта страница является сообщением об ошибке, и ошибка, похоже, решена.

> кто-нибудь знает, что name я не устанавливаю?

python = "^3.10"
django = "^5.1.2"
django-storages = "^1.14.4"
boto3 = "^1.35.54"
Вернуться на верх