Joh*_*y 5 2 python django amazon-s3 django-storage
我试图用http://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html为服务既静态文件和上传的媒体,但我不能肯定这是可能的.有没有记录的方式我错过了?另外,我假设(希望)您可以为每个配置一个单独的存储桶,但我找不到任何相关信息.
是的,这可以通过配置DEFAULT_FILE_STORAGE和STATICFILES_STORAGE使用S3存储来实现.但是,如果你设置
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
Run Code Online (Sandbox Code Playgroud)
那么这些都将使用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)
Run Code Online (Sandbox Code Playgroud)
然后,您可以将AWS_STATIC_BUCKET_NAME设置定义为静态存储桶的任何设置,并更改AWS_STATIC_BUCKET_NAME为此自定义存储类的路径.
STATICFILES_STORAGE = 'dotted.path.to.storage.S3StaticStorage'
Run Code Online (Sandbox Code Playgroud)
如果你想改变其他设置,如AWS_QUERYSTRING_AUTH,AWS_S3_CUSTOM_DOMAIN,AWS_PRELOAD_METADATA,等于是你会改变他们在这个子类为好.
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |