Django collectstatic没有推送到AWS S3

时间:2014-11-05 22:44:05

标签: django heroku amazon-web-services amazon-s3

我无法使用django' collectstatic'将我的本地文件推送到亚马逊S3。

我的settings.py,可能相关的所有设置:

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
INSTALLED_APPS += ('storages',)
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = os.environ['AWSAccessKeyId']
AWS_SECRET_ACCESS_KEY = os.environ['AWSSecretKey']
AWS_STORAGE_BUCKET_NAME = os.environ['AWS_STORAGE_BUCKET_NAME']
S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = S3_URL
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),)
STATIC_ROOT = 'staticfiles'

如果我使用这些设置运行collectsatic,我会收到错误:

0 static files copied, 139 unmodified.

如果我将STATIC_ROOT改为" /" (考虑到Amazon Bucket中的文件夹分发,这就是我喜欢它的方式),我收到错误:

OSError: [Errno 13] Permission denied: '/css'

请帮助,我已经没有想法了。我已经仔细检查了凭据,并且我也试图从heroku运行它。

heroku run python manage.py collectstatic

相同的错误。

1 个答案:

答案 0 :(得分:2)

根据docs,您需要添加

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

到你的设置文件。