Django Storages
django-storages предоставляет backends для хранения файлов в различных облачных сервисах.
Установка
Настройка для Amazon S3
1# settings.py
2INSTALLED_APPS = [
3 'storages',
4]
5
6# AWS настройки
7AWS_ACCESS_KEY_ID = 'your-access-key'
8AWS_SECRET_ACCESS_KEY = 'your-secret-key'
9AWS_STORAGE_BUCKET_NAME = 'your-bucket-name'
10AWS_S3_REGION_NAME = 'us-east-1'
11
12# Статические файлы
13STATICFILES_STORAGE = 'storages.backends.s3boto3.StaticS3Boto3Storage'
14DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.MediaS3Boto3Storage'
Кастомные storage классы
1from storages.backends.s3boto3 import S3Boto3Storage
2
3class StaticStorage(S3Boto3Storage):
4 location = 'static'
5 default_acl = 'public-read'
6
7class MediaStorage(S3Boto3Storage):
8 location = 'media'
9 file_overwrite = False
10
11# В настройках
12STATICFILES_STORAGE = 'myapp.storage.StaticStorage'
13DEFAULT_FILE_STORAGE = 'myapp.storage.MediaStorage'
Настройка для Google Cloud Storage
1# Установка
2pip install django-storages[google]
3
4# Настройки
5GS_BUCKET_NAME = 'your-bucket-name'
6GS_CREDENTIALS = service_account.Credentials.from_service_account_file(
7 'path/to/service-account.json'
8)
9
10DEFAULT_FILE_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
11STATICFILES_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
FAQ
Q: Как настроить CDN?
A: Используй AWS_S3_CUSTOM_DOMAIN для CloudFront.
Q: Можно ли использовать локальное хранилище?
A: Да, создай кастомный storage класс для локального хранения.