2016-08-24 48 views
0

私はAWSを初めて使用しており、AWS APIのS3トラフにpdf文書をアップロードしようとしています。私はpostメソッドでHTMLフォームを使用しています。フォームのアクションは、デプロイされたAPIのURLです。 APIはラムダ関数と統合されています。私の質問は、S3にアップロードする前に何らかの処理を実行するために、ラムダ関数内で処理するためにアップロードされたファイルをどのように抽出することができるかです。それも可能ですか?AWS PDF投稿http投稿

私はこの記事で見つかった命令を試してみました

Passing HTTP Post from AWS API GW to Lambda

は、しかし、私はラムダ関数からのイベントを返し、これは私が得るものです:

{file: file.pdf , acl:private, 
success_action_redirect: http://localhost/, AWSAccessKeyId:my_aws_key} 

私は、アップロードされたファイルが呼び出されますfile.pdf。

ご指摘いただければ幸いです。

答えて

2

pdfファイルはバイナリ形式です。 APIゲートウェイは現在、バイナリデータをサポートしていません。バイナリデータは正常に動作しないため、回避策はありません。多くのお客様から、API Gatewayにバイナリサポートを追加するよう要請されており、当社のバックログに優先順位が付けられています。

+0

ありがとうございました。ファイルが圧縮されている場合はどうなりますか?それは通りますか? – oma07

+0

@ oma07 zipファイルはバイナリファイルです... –

+0

いいえ、ZIPファイルはバイナリ形式では動作しません。あなたは、クライアント上でpdfをbase64でエンコードし、base64でエンコードされたデータをAPIゲートウェイ経由でラムダ関数に渡し、ラムダ関数でデータをデコードし、そこからS3にアップロードすることができます。明らかに、これはあなたのクライアント上でbase64エンコードを行うカスタムコードを必要とするでしょう。 –