検索

ホームページ  >  に質問  >  本文

AWS API Gateway 経由でバイナリ画像 (jpg) データを AWS Lambda バックエンドに送信するときに混乱する

簡単な点を見逃していた場合は、あらかじめご容赦ください。 React から AWS API Gateway 経由で AWS Lambda に画像を送信することに成功しました。同じLambda関数のs3バケットにアップロードしました。以下は React コードです:

リーリー

API Gateway で、以下に示すように Lambda プロキシ転送を有効にし、バイナリ イメージ形式を有効にしました

Lambdaプロキシ設定

API ゲートウェイのバイナリ設定

ここで奇妙な部分が始まります...少なくとも私にとっては... 私のPythonバックエンドコードには次のものがあります:

リーリー

しかし、これを行う必要があることがわかります:

リーリー

私は頭がおかしいと思ったので、Postman にアクセスし、curl コマンドをコピーし、次のようにコマンド プロンプトからバイナリ データを送信するように変更しました。 リーリー

正常に動作します。

データを Base64 エンコードする必要がありますが、見たところ、API Gateway またはチェーン内の何かがすでにそれを行っています。私が何か間違ったことをしているかどうか、そしてそれをより良い方法で行う必要があるかどうかを教えてください。

P粉300541798P粉300541798264日前578

全員に返信(1)返信します

  • P粉799885311

    P粉7998853112024-04-06 09:34:30

    それでは、この記事をご覧ください https://aws.amazon.com/blogs/compute/handling-binary-data-using-amazon-api-gateway-http-apis/,エンコードは「content-type」ヘッダーに基づいて決定されるようです。 Lambda 関数で次のコードを使用し、CloudWatch ログの結果を表示することで、Python バックエンド コードを表示できます。

    print("isBase64Encoded: %s" % イベント['isBase64Encoded'])

    他の人が助けが必要な場合に使用できるように、コードとソリューションをここに保管します。

    返事
    0
  • キャンセル返事