我正在尝试用django和python做一个博客应用程序。我也在尝试用s3 bucket来存储,用heroku来部署。我正在按照coreymschafer的在线教程做。我做的每件事都和教程一样,但是我得到了那个错误。我不知道该怎么做。请帮助!
我也安装了boto 3和django-storages。但是,我觉得问题是boto 3的一些原因enter image description here。我附上了问题的截图,也只是想声明base.html没有问题
请帮帮忙!谢谢
我将以下内容添加到我的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')
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
9条答案
按热度按时间cgfeq70w1#
出现了同样的问题。注解掉这一行,代码再次正常工作:
发现这是因为,即使我已经重新启动了我的PC,其中一个环境变量,我引用是不正确的设置:
我使用Python控制台进行了检查:
并确保Python可以正确地访问所有值。然后返回:
flvlnr442#
终止本地服务器,关闭命令提示符。然后重新启动命令提示符。再次运行服务器并重试。如果执行此操作后出现以下错误:不支持您提供的授权机制。请使用AWS 4-HMAC-SHA 256将其放在您的settings.py:
wr98u20j3#
我的问题是服务器没有更新它的环境变量。请尝试重新启动服务器以使环境变量生效。
z9ju0rcb4#
我遇到了和你一样的问题,可能你没有在服务器端设置AWS环境变量,尽管你在本地机器上设置了它们。所以,你可以复制本地.bash_profile文件中的导出命令,在那里你设置了AWS环境变量,然后将它们粘贴到服务器端的.bash_profile文件中。
4sup72z85#
我也遵循了同样的教程。当我在Heroku上部署它时,我面临着完全相同的问题。
当我使用以下命令将环境变量添加到heroku时,问题得到了解决
heroku配置:设置变量名=“值”
希望这能解决您的问题。
uhry853o6#
即使您遵循了注解中的所有建议,但仍然不起作用,请在
settings.py
中添加以下代码:这对我很有效,我在
us-east-2
地区。如果你所在的地区不同,请考虑阅读Github上的这一期。(在我遵循了下面的所有建议后,在那里找到了我的解决方案。)w6lpcovy7#
如果有人在学习教程时偶然发现了这个问题,如果您使用的是MacOS Catalina 或更高版本,则终端已从bash更改为zsh。
我在.zshenv中添加了我的环境变量,并且能够解决这个问题。
fzwojiic8#
一字一句地评论
STATICFILES_STORAGE = '存储器.后端.S3Boto3.S3Boto3存储器'
mccptt679#
我也遇到过同样的问题。我解决问题的方法是这样的:
1.转到AWS控制台
1.选择存储区的名称
1.选择属性
1.选择加密
1.点击阅读更多..(这将引导您到您的权限选项卡)
1.解除封锁权限。
我知道这不是最好的方法和做法。但我可以沿着。如果有人在这里有同样的麻烦,请分享!