从 AWS Lambda 函数返回音频文件作为响应



我有一个调用 Lambda 函数(带有代理集成(的 AWS API 网关,该函数应返回一个音频文件。

假设我将音频作为"字节"对象。我该如何返回它,以便浏览器(例如 Firefox(可以立即识别和播放它?

这是我得到的,但显然,这并不真正有效。

sound: bytes
return {
'statusCode': 200,
'headers': {
'Content-Type': 'audio/mpeg'
},
'isBase64Encoded': True,
'body': base64.b64encode(sound)
}

我的情况的解决方案(代理集成(

  1. Base-64 对字节对象进行编码(例如base64.b64encode(sound)在 Python 中(,并将结果放入响应字典的'body'中。
  2. 在响应字典中将'isBase64Encoded'设置为true
  3. 在 API 设置中,将二进制媒体类型设置为适当的媒体类型,不要忘记将客户端的接受标头设置为相同的值。

直接帮助我的资源

  • https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-output-format
  • https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-configure-with-console.html

可能有用的资源

  • https://aws.amazon.com/ru/blogs/compute/binary-support-for-api-integrations-with-amazon-api-gateway/
  • https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings.html

最新更新