簡體   English   中英

當簽名具有“+”符號時,禁止使用Amazon S3 Python S3Boto 403

[英]Amazon S3 Python S3Boto 403 Forbidden When Signature Has '+' sign

我正在使用DjangoS3Boto ,只要簽名中有一個'+'符號,我就會獲得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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM