찾다

 >  Q&A  >  본문

AWS API Gateway를 통해 AWS Lambda 백엔드로 이진 이미지(jpg) 데이터를 보내는 동안 혼란이 발생했습니다.

간단한 내용을 놓쳤다면 미리 죄송합니다! AWS API Gateway를 통해 React에서 AWS Lambda로 이미지를 성공적으로 보냈습니다. 동일한 Lambda 함수의 s3 버킷에 업로드했습니다. React 코드는 다음과 같습니다.

으아악

API Gateway에서 아래와 같이 Lambda 프록시 전달을 활성화하고 바이너리 이미지 형식을 활성화했습니다.

Lambda 프록시 설정

API 게이트웨이 바이너리 설정

이제 이상한 부분이 나옵니다...적어도 저에게는.. 내 Python 백엔드 코드에는 다음이 포함됩니다.

으아악

하지만 보시다시피 저는 이렇게 해야 합니다:

으아악

내가 미쳤다고 생각해서 Postman에 가서 컬 명령을 복사하고 다음과 같이 명령 프롬프트에서 바이너리 데이터를 보내도록 수정했습니다.

으아악

잘 작동합니다.

데이터를 base64로 인코딩해야 하는데 API 게이트웨이나 체인의 다른 항목에서 이미 그렇게 하고 있는 것으로 보입니다. 제가 뭔가 잘못하고 있는지, 더 나은 방법으로 처리해야 하는지 알려주세요.

P粉300541798P粉300541798233일 전532

모든 응답(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" % event['isBase64Encoded'])

    다른 사람들이 도움이 필요할 때 사용할 수 있도록 코드와 솔루션을 여기에 보관하겠습니다.

    회신하다
    0
  • 취소회신하다