に私がAWSラムダに比較的新しいですので、多分これは簡単ですが、私は今のところ、それを考え出したていません。 APIゲートウェイリクエストに対する応答としてコールバックとして返すことができるのと同じJSONデータを返したいと思います。 問題は、ユーザーがアップロードした画像を処理して、その処理の結果をJSON形式でユーザーに返すことです。 S3アップロード(トリガー)に応答するラムダ関数を作成することはできますが、そのようにユーザーにデータを返すことはできません。戻りJSON S3のアップロードに対応し
2
A
答えて
2
あなたは、単一の、同期動作としてこれを実装することができるかもしれません。イメージが10MB以下の場合、イメージを受け入れ、S3にアップロードし、処理し、データをユーザーに返すラムダ関数を作成することができます。これはまた、S3にアップロードして29秒以内に画像を処理できることを前提としています。これは、APIゲートウェイが要求をタイムアウトするまでの最大時間です。
それがあなたのために動作しません場合は、非同期処理にスイッチがあるでしょう。 S3アップロードイベントに応答し、処理を実行し、結果をDynamoDB、RDS、またはAuroraのテーブルに書き込むラムダ関数を持つことができます。 API Gatewayメソッドを公開して、完了した処理をチェックし、結果を取得することができます。クライアントはこのAPIゲートウェイメソッドをポーリングする必要があります。
1
私は別のアプローチをお勧めします:直接
- let the browser do the upload to S3たとえば、画像が
someimage.jpg
の場合は、someimage-thumb.jpg
として保存できます。アップロード後 - は、サムネイルが存在し、表示されるまで、JavaScriptクライアントの世論調査にループでS3バケットを聞かせて完成します。
この方法を使用すると、アップロードが高速になり、ユーザーエクスペリエンスが向上し、信頼性が向上します。
============================================== ===
実際にAPIゲートウェイを使用したい場合は、バイナリデータがnow supportedであるため可能です。関数内のデータは、バイナリまたはbase64でエンコードされたものとして受け取ることができます。あなたは、例えば、処理された画像をbase64エンコードし、いくつかのメタデータを含む応答を返信することができます:ここに
{
"thumbnail": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg==",
"metadataKey1": "some data",
"metadataKey2": "some other data"
}
短所:遅くなりますアップロードする
- 時間を私たちは、ボトルネックを導入しているとして、 。
- 特に大きな画像をbase64に/から変換する必要がある場合は、さらに処理が必要です。
- ブラウザは、処理されたイメージのレンダリングをより困難にします。あなたは、コードサンプルを含める必要が
関連する問題
- 1. 反応ネイティブCameraRollからs3にアップロード
- 2. s3サーバを使用してs3にアップロード
- 3. ファストレーンでS3にアップロード
- 4. JSON対HTML Ajaxの応答
- 5. S3バケットにアップロード
- 6. 仮想関数のすべての戻り値を対応する戻り値のアドレスにマップします
- 7. Datatablesに対するJSONの応答?
- 8. JSON - 戻りプロパティ
- 9. S3にファイルをアップロード
- 10. アップロードされたファイルをs3から取得して、s3にアップロードした後、再度解凍したフォルダをs3にアップロードするためのAWSラムダ機能
- 11. Amazon APIゲートウェイ、S3、SQS、Lambdaを経由してjsonファイルをアップロード
- 12. AWSラムダ関数がjsonをs3バケットにアップロードできません
- 13. Laravel +プリフライトのS3応答へのPluploadアップロードが無効です - CORS
- 14. Amazon S3にファイルをアップロードし、アップロードされたパーセンテージのコールバックを割り当てる
- 15. セキュアS3アップロード
- 16. Amazon S3アップロードRails
- 17. 戻りJSONはoctoberCMS
- 18. Unit8Arrayは、AWS S3バケット応答
- 19. S3 pycurl割り込みでアップロード
- 20. はS3バケットにアーカイブファイルをアップロード
- 21. ユニットテストファイルをAWS S3にアップロード
- 22. イメージをs3バケットノードにアップロードjs
- 23. AndroidファイルをAmazon S3にアップロード
- 24. AWS S3アップロード、ダウンロード、アップロードのみの権限
- 25. S3にアップロードするresqueジョブを使用したCarrierwaveファイルのアップロード
- 26. 戻りJSONオブジェクト(ASP.NET WebAPIの)
- 27. rails、carrierwave-direct、jqueryファイルのアップロードでクライアント側のs3にファイルをアップロード
- 28. REST/JSON/MVC戻り値
- 29. エラー:SignatureDoesNotMatch、S3対応のAWS-SDK gem、paperclip 3.0.1およびレール3.2
- 30. BOMを使用してS3にアップロード
。 –