Bucketeer - 在Django上的Heroku的附加s3存储桶配置

时间:2015-12-02 23:11:43

标签: heroku amazon-s3 django-settings

我目前正在使用S3在Heroku上提供静态文件。 S3存储桶已创建并由我管理,其settings.py文件如下所示。

import os

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 = '<MY BUCKET NAME>'

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/'

这与此答案相同,并且完全正常:Django + Heroku + S3

但是我想切换到Bucketeer,它是一个Heroku附加组件,可以为您创建和管理S3存储桶。但Bucketeer提供了不同的参数,静态URL看起来不同,我无法使其工作。该URL具有以下模式:&#34; bucketeer-heroku-shared.s3.amazonaws.com/UNIQUE_BUCKETEER_BUCKET_PREFIX/public /"。所以我的更新代码如下。

#Bucketeer
AWS_ACCESS_KEY_ID = os.environ.get('BUCKETEER_AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('BUCKETEER_AWS_SECRET_ACCESS_KEY')
BUCKETEER_BUCKET_PREFIX = os.environ.get('BUCKETEER_BUCKET_PREFIX')

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
#Bucketeer Config
STATIC_URL = 'http://bucketeer-heroku-shared.s3.amazonaws.com/' +
             BUCKETEER_BUCKET_PREFIX + '/public/'
#I also tried
#STATIC_URL = 'http://bucketeer-heroku-shared.s3.amazonaws.com/' +
#             BUCKETEER_BUCKET_PREFIX + '/'

这就是我得到的错误。

Preparing static assets
Collectstatic configuration error. To debug, run:
$ heroku run python manage.py collectstatic --noinput

毋庸置疑,应用程序中没有静态文件,所以当我运行建议的命令时,我得到了:

boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden

这意味着我没有被授权访问所述存储桶。有人可以了解这里发生了什么,以及如何解决它。

0 个答案:

没有答案