4

静的ファイルアップロードされたメディアの両方を提供するためにhttp://django-storages.readthedocs.org/en/latest/backends/amazon-S3.htmlを使用しようとしていますが、それが可能かどうかはわかりません。私が見逃している文書化された方法はありますか?また、それぞれに個別のバケットを構成できると思います (希望) が、それに関する情報が見つかりません。

4

1 に答える 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_AUTHAWS_S3_CUSTOM_DOMAIN、などの他の設定を変更したい場合はAWS_PRELOAD_METADATA、このサブクラスでも変更します。

于 2013-08-30T17:19:18.333 に答える