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
、すべての静的ファイルがバケットにアップロードされます。ただし、さまざまな目的で使用し、Web サイトの特定の領域で使用したい別のバケットがあります。たとえば、次のようなモデルがある場合です。
class Image(models.Model):
myobject = models.ImageField(upload_to='my/folder')
Image.save()
が呼び出されると、ファイルは の S3 バケットにアップロードされますが、別の S3 バケットを指すようAWS_STORAGE_BUCKET_NAME
にしたいと考えています。Image.save()
これを行うクリーンな方法はありますか?私は実行時に変更したくありませんしsettings.py
、django の重要な原則に違反する慣行を実装したくもありません。つまり、プラグイン可能で簡単に変更できるバックエンド ストレージを使用することです。