【问题标题】:Can't get django-storages to set defaultStorage无法让 django-storages 设置 defaultStorage
【发布时间】:2013-07-18 17:35:16
【问题描述】:

我正在使用 Amazon AWS S3,并尝试设置我的 Django 应用程序以部署在 Heroku 上,并使用 django-storages 包(也使用 boto)设置静态和媒体文件。

我的 settings.py 包括以下内容:

DEBUG = False
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
   'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

if not DEBUG:
    DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
    AWS_STORAGE_BUCKET_NAME = os.environ['AWS_STORAGE_BUCKET_NAME']
    STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
    S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
    STATIC_URL = S3_URL
    ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'

INSTALLED_APPS += (
    'storages',
)

但是,当我登录控制台查看是否设置了默认存储时,根据django-storages getting started guide,我没有得到我应该得到的。

这是我的 shell 会话中的一个示例:

>>> from django.core.files.storage import default_storage
>>> print default_storage.__class__
<class 'django.core.files.storage.DefaultStorage'>

根据指南,我应该把这个拿回来:

>>> from django.core.files.storage import default_storage
>>> print default_storage.__class__
<class 'S3Storage.S3Storage'>

我尝试将我的 settings.py 导入交互式 shell。没有运气。但是,我的其他 AWS 设置存储良好,例如 S3_URL,它正在检索 env 变量并插入到亚马逊 URL。

谁能给我一个线索?

TIA。

【问题讨论】:

    标签: django heroku amazon-s3


    【解决方案1】:

    你安装了boto吗?如果 boto 没有正确安装,如果 django-storages 无法正确导入 boto,可能会将您设置回默认存储类。

    【讨论】:

    • 是的,我已经通过 pip 安装了 boto 2.9.8。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 2020-03-26
    • 2016-05-11
    相关资源
    最近更新 更多