django-storages s3 403禁止错误

时间:2013-06-30 17:07:06

标签: django amazon-s3 django-storage

我正在使用django-storage将静态文件上传到AWS S3。我按照教程,能够成功上传和检索管理页面的静态文件。

然后我在我的django项目中创建了一个静态目录,添加了一些引导程序文件并运行了collectstatic。我可以看到引导程序文件都已成功存储到我的S3存储桶中。但是,当我尝试运行我的应用程序(本地和Heroku)时,引导文件失败并出现get 403禁止错误。

管理员文件存储在同一S3存储桶中的管理文件夹中,并且可以毫无问题地进行检索。什么可能解释这种差异?我是s3的新手,所以也许我在那里做错了。

我已确认我的AWS密钥正在运行。

我的settings.py如下:

AWS_STORAGE_BUCKET_NAME = 'punchline-app'
AWS_PRELOAD_METADATA = True 
STATIC_ROOT = ''
STATIC_URL = 'https://punchline-app.s3.amazonaws.com/static/'
ADMIN_MEDIA_PREFIX = 'https://punchline-app.s3.amazonaws.com/static/admin/'

STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
    os.path.join(PROJECT_DIR,"static"),
)

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

2 个答案:

答案 0 :(得分:0)

您是否在settings.py文件中将访问密钥排除在外?

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 = os.environ.get('AWS_STORAGE_BUCKET_NAME')

你是否在heroku中设置了你的env变量?例如

heroku config:set AWS_ACCESS_KEY_ID='<put your key here>'

答案 1 :(得分:-2)

这就是AWS对您的问题所说的

  1. 拒绝访问
  2. 帐户问题
  3. enter image description here