私はmultipart/form-dataを受け入れ、リクエストを渡すようにapiゲートウェイを設定したWebアプリケーションを持っています。しかし、私がフォームの一部として画像をアップロードすると、アップロードされて破損した元のファイルよりも大きくなります。 AWS APIゲートウェイを経由せずに同じメソッドを実行すると、画像は正常にアップロードされます。私がここで紛失しているアイデアは何ですか?APIゲートウェイでのマルチパートパススルー
下のフラスコ内のフォームデータを読み込み、自分のS3コードです:
f = request.files['attachment']
fp = StringIO(f.read())
file_uuid = str(uuid.uuid4())
bucketkey.key = "att_%s%s" % (file_uuid, file_extension(f.filename))
bucketkey.set_contents_from_file(fp)
私は全くその便利な場合は破損しているサンプルJPGへのリンクを添付します。
おそらく、Base64でエンコードされている可能性があります。 Base64でデコードしてみましたか? –
残念ながら、ファイル自体やファイルの内容をデコードできません。フォーム内の他のフィールドは正しく解釈されますが、正しく通過します。私は全身がb64エンコードされていると思っていただろうが、ネイン。しかし、入力のおかげで! – Alex
「破損した」画像をダウンロードし、16進エディタでファイルの内容を確認しようとしましたか?アップロードしたものを調べると、ファイルが大きくなり、自明でなければならない1つの方法があります。 –