在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 关键原则的做法,即拥有一个可插入且易于更改的后端存储。