В 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 static.mysite.com
и работает нормально, когда я выполняю manage.py collectstatic
, оно загружает все статические файлы в мое ведро. Однако у меня есть еще одна корзина, которую я использую для разных целей и хотел бы использовать в определенных областях сайта, например, если у меня есть такая модель:
class Image(models.Model):
myobject = models.ImageField(upload_to='my/folder')
Теперь, когда вызывается Image.save()
, он все равно будет загружать файл в корзину S3 в AWS_STORAGE_BUCKET_NAME
, однако я хочу, чтобы этот Image.save()
указывал на другую корзину S3. Любой чистый способ сделать это? Я не хочу изменять settings.py
во время выполнения и не применять какие-либо методы, которые нарушают ключевые принципы django, т. Е. Иметь подключаемое, легко изменяемое внутреннее хранилище.