В settings.py
у меня есть:
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'xxxxxxxxxxxxx'
AWS_SECRET_ACCESS_KEY = 'xxxxxxxxxxxxx'
AWS_STORAGE_BUCKET_NAME = 'static.mysite.com'
Это указывает на мой S3 bucket static.mysite.com
и работает нормально, когда я делаю manage.py collectstatic
, он загружает все статические файлы в мой bucket. Однако у меня есть другое ведро, которое я использую для различных целей и хотел бы использовать в определенных областях веб-сайта, например, если у меня есть модель вроде этой:
class Image(models.Model):
myobject = models.ImageField(upload_to='my/folder')
Теперь, когда вызывается Image.save()
, он все равно загрузит файл в ведро S3 в AWS_STORAGE_BUCKET_NAME
, однако я хочу, чтобы это Image.save()
указывало на другое ведро S3. Есть чистый способ сделать это? Я не хочу изменять settings.py
во время выполнения и не хочу применять никаких практик, нарушающих ключевые принципы django, т.е. наличие подключаемого легко изменяемого бэкенд-хранилища.