S3不向Django heroku app提供媒体文件

时间:2012-10-10 00:11:01

标签: django heroku amazon-s3 django-storage

晚安,我正在尝试使用S3作为我的javascript和我的样式表的服务器,在Heroku上使用django设置应用程序。在一些帖子之后,我在S3上配置了一个桶,并将我的env变量配置为heroku。然后在我的设置文件中我有这样的东西

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',        
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'apuh',
    'storages',
)

AWS_QUERYSTRING_AUTH = False
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = 'mybucket'

STATIC_URL ='https://s3.amazonaws.com/%s /'%AWS_STORAGE_BUCKET_NAME ADMIN_MEDIA_PREFIX ='/ static / admin /'

当我运行我的应用时,它会因此错误崩溃:

Error: No module named storages

我用pip install django_storages安装了django_storages。它安装在我的环境中。如果我评论“存储”行,它将不会加载存储桶中的任何文件,我想该请求不会发送问题令牌进行身份验证。

所以,我的问题是,我做错了什么。我已经检查过问题和问题,但看起来我错过了一些大事。

提前致谢

1 个答案:

答案 0 :(得分:3)

也许添加这些会有帮助吗?

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

STATIC_URL = 'http://' + AWS_STORAGE_BUCKET_NAME + '.s3.amazonaws.com/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'

并且是安装boto以及

然后运行pip freeze> requirements.txt只是为了确保所有依赖项都是最新的

我希望它有所帮助