无法获取django-storages来设置defaultStorage

时间:2013-07-19 12:22:11

标签: django heroku amazon-s3

我正在使用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变量并插入到amazon URL中。

有人能给我一些线索吗?

TIA。

1 个答案:

答案 0 :(得分:0)

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