Сталкиваясь в процессе разработки с необходимостью иметь несколько экземпляров веб-приложения, часто ощущается необходимость иметь статику и медиа файлы в одном месте. Самый легкий способ реализовать эту это возможность — это пользоваться облачным хранилищем, например, таким как s3 от amazon.
Предполагаю, что у вас уже есть аккаунт aws и вы знаете где найти настройки для s3. Буквально пару строк кода и ваши данные будут храниться во внешнем хранилище:
setting.py DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' AWS_ACCESS_KEY_ID = '...' AWS_SECRET_ACCESS_KEY = '...' AWS_STORAGE_BUCKET_NAME = '...' AWS_QUERYSTRING_AUTH = Falsemodels.py models.py from django.core.files.storage import default_storage as s3_storage class Model(models.Model): title = models.CharField(max_length=50) image = models.ImageField(storage=s3_storage, upload_to='dir/')
Значение False
дляAWS_QUERYSTRING_AUTH
удаляет параметры аутентификации из сгенерированного адреса. Это применимо когда у вас публичный S3.
Для того, чтобы вся статика хранилась там же, на s3, необходимо будет выполнить команду
python manage.py collectstatic