首页 > 解决方案 > 如何阻止 AWS API Gateway 使用 base64 编码二进制响应?

问题描述

我使用 AWS Toolkit 中的项目模板创建了一个 ASP.NET Core 应用程序。我将其部署为 AWS Lambda,并注意到二进制文件在响应中进行了 base64 编码。我在 AWS API Gateway 中添加了正确的媒体类型,如下所示。浏览器正在发送正确的接受设置。响应显示 x-amzn-remapped-content-length 为 3346,这是实际文件大小,响应大小为 4464,这是 base64 编码版本。

我已经看到有关在 yml 文件中设置 "contentHandling": "CONVERT_TO_BINARY" 的响应。我没有使用任何 yml 文件。项目模板已使用 CloudFormation 模板 (serverless.template) 进行设置。我尝试将设置放在那里,但它出错了。模板在部署期间不理解设置,或者我将它放在模板文件中的错误位置。

关于如何让端点按原样发送二进制文件而不进行编码的任何想法?

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

标签: asp.net-coreaws-lambdaamazon-cloudformationaws-serverless

解决方案


在“x-amazon-apigateway-integration”对象中的端点中的无服务器 YML 文件中,将“contentHandling”设置为“CONVERT_TO_BINARY”。在 API Gateway 中 检查此内容类型转换


推荐阅读