6

私は and を使用しDjangoており、署名に記号が含まれている場合S3Botoは常に. 署名に署名がない場合は、リソースを問題なく取得できます。ここで何が問題なのですか?'+'403 Forbidden'+'

アップデート:

リポジトリは次のとおりです: https://github.com/boto/boto

関連するファイルは次のとおりです。

boto/utils.py
boto/s3/connection.py

注: 私は Python を初めて使用します。コードを変更しようとしましたが、まだエンコードを適切に行うことができません。

4

3 に答える 3

3

少し時間がないので (午前 1 時 30 分)、残念ながらコード サンプルはまだありませんが、これは URL の値 + をエンコードする必要があるためだと思います。だからgithubから、あなたのURLは...

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を参照してください。

コードを修正するには、URL クエリ文字列を作成する URLEncoding 関数を追加します。

于 2012-08-22T08:35:09.857 に答える
1

一言で言えば、問題は S3Boto ではなく、URL で後で発生する「unquote」への呼び出しにあります。

ここで同様の質問に答えました:

一貫性のない SignatureDoesNotMatch Amazon S3 と django-pipeline、s3boto、およびストレージ

そこで私の解決策をチェックしてください。

于 2012-09-05T08:39:29.697 に答える
0

boto のこの問題の修正になることを願っていることをコミットしました。https://github.com/boto/boto/commit/a01a5d1a1e88f79ed5db52639d3674d9eb5e45dcを参照してください。これで問題が解決するかどうかお知らせください。

于 2012-08-31T16:05:26.327 に答える