Сложность хранения статических файлов на 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"