[英]Amazon S3 Python S3Boto 403 Forbidden When Signature Has '+' sign
我正在使用Django
和S3Boto
,只要簽名中有一個'+'
符號,我就會獲得403 Forbidden
。 如果簽名中沒有'+'
符號,我就可以獲得資源。 這可能有什么問題?
更新:
回購郵件位於: https : //github.com/boto/boto
有關文件是:
boto/utils.py
boto/s3/connection.py
注意:我是Python的新手。 我嘗試修改代碼,但仍然無法正確完成編碼。
我的時間有點短(因為它是凌晨1:30)所以很遺憾我還沒有代碼樣本,但我相信這是因為URL中的值+應該被編碼。 所以從github,你的網址...
https://s3.amazonaws.com/dragonflysco/static/js/plugins/blockui.js?Signature=+tahbTacs5Vkzt5jQ+hZULzGPhE=&Expires=1345019173&AWSAccessKeyId=AKIAJNCPYIZVZXKOPCHA
應該真的
https://s3.amazonaws.com/dragonflysco/static/js/plugins/blockui.js?Signature=%2BtahbTacs5Vkzt5jQ+hZULzGPhE=&Expires=1345019173&AWSAccessKeyId=AKIAJNCPYIZVZXKOPCHA
(注意:我用%2B替換了+)
請參閱http://www.w3schools.com/tags/ref_urlencode.asp
要修復代碼,我會添加一個URLEncoding函數來構建URL查詢字符串。
簡而言之,問題不在S3Boto中,而是在稍后在URL上發生的“取消引用”。
我在這里回答了類似的問題:
使用django-pipeline,s3boto和storages的SignatureDoesNotMatch Amazon S3不一致
請在那里查看我的解決方案。
我剛剛提交了我希望將在boto中修復此問題的內容。 請參閱https://github.com/boto/boto/commit/a01a5d1a1e88f79ed5db52639d3674d9eb5e45dc 。 如果這可以解決問題,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.