2016-04-11 4 views
0

ファイルのアップロードにbotoを使用すると、他の多くのユーザーと同じように、奇妙な403禁制エラーが発生しました。 彼らに提供されたソリューションは私のために働いていませんでした。AWS S3 403バックアップファイルによるサーバーエラー

私のバケツには多くのファイルがアップロードされていますが、そのほとんどは403エラーが発生するまで動作しました。

私はさらに問題がチルダを削除し、ファイルの名前を変更する場合UUID_Server.csv〜

という名前のファイルから来たことに気づき、すべてが動作します。 スクリプトで回避策を講じましたが、解決策はあまりエレガントではありません。

なぜ '〜'はs3のダイジェストにならないのでしょうか? 私は設定ファイルを使用しません。すべてがスクリプトにあります。私のpythonバージョンは2.7.3で、botoは最新です。

ありがとうございます。

答えて

3

AWS S3は、ファイル名に~となります。

AWSCLI awsコマンドを使用して、data.txt~という名前のファイルをアップロードできました。

とにかく、botoは最新の状態です。このプロジェクトのREADME.rstを確認すると、次のように表示されます。

boto 2.39.0 

Released: 9-Apr-2015 

今日は更新がない1年2日です。このパッケージの問題の

数は「ホーム方法はありません」comment to my issue成長とミッチGarnaat(botoの作者)によるとされ、今後の発展が唯一boto3です。

私のアドバイスは:boto3にスクリプトを書き直そうとすると、よりうまくいく可能性があり、長く働くことになります。

+0

'〜'はurl-encodingを使ってURLで特別な処理が必要な文字です(または必須でない場合は特別な処理が行われる可能性があります)、署名コードはエンコーディングと一致する署名を生成する必要があります。問題の説明のための有望な候補のようであり、廃止されたbotoの状態...よく、ええ。それはうまくいったはずです。 +1 –

+0

(ほぼ)まったく同じスクリプトでboto3に切り替えました。そして、今回はうまくいきました。ありがとう! – Sogeking

+0

@Sogeking 'boto'ページを訪問する私はあなたの問題に対処するプルのリクエストが見つかりました(https://github.com/boto/boto/commit/98651e86a5fddee84c123ff78dbe09eca68b5d5a)が1週間前にマスターにマージされました。もし彼らが今やっているように、彼らが新しいバージョンをリリースしたのか、あなたが好きなら「開発版を使う」の中に 'boto'を残すのだろうか。あなたは 'boto3'に切り替えました。 –

関連する問題