静的ファイルとアップロードされたメディアの両方を提供するためにhttp://django-storages.readthedocs.org/en/latest/backends/amazon-S3.htmlを使用しようとしていますが、それが可能かどうかはわかりません。私が見逃している文書化された方法はありますか?また、それぞれに個別のバケットを構成できると思います (希望) が、それに関する情報が見つかりません。
1471 次
1 に答える
9
はい、これは両方DEFAULT_FILE_STORAGE
を構成することで可能でありSTATICFILES_STORAGE
、S3 ストレージを使用します。ただし、設定した場合
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
次に、これらは両方とも S3 ストレージのデフォルト設定を使用します。つまり、両方ともAWS_STORAGE_BUCKET_NAME
バケットを使用します。これを回避する方法はS3BotoStorage
、バケット名に別の設定を使用するプロジェクトで の小さなサブクラスを作成することです。
from django.conf import settings
from storages.backends.s3boto import S3BotoStorage
class S3StaticStorage(S3BotoStorage):
def __init__(self, *args, **kwargs):
kwargs['bucket'] = settings.AWS_STATIC_BUCKET_NAME
super(S3StaticStorage, self).__init__(*args, **kwargs)
AWS_STATIC_BUCKET_NAME
次に、静的バケットに必要な設定を定義し、AWS_STATIC_BUCKET_NAME
このカスタム ストレージ クラスのパスに変更します。
STATICFILES_STORAGE = 'dotted.path.to.storage.S3StaticStorage'
AWS_QUERYSTRING_AUTH
、AWS_S3_CUSTOM_DOMAIN
、などの他の設定を変更したい場合はAWS_PRELOAD_METADATA
、このサブクラスでも変更します。
于 2013-08-30T17:19:18.333 に答える