【问题标题】:How to stop AWS API Gateway from base64 encoding binary responses?如何阻止 AWS API Gateway 使用 base64 编码二进制响应?
【发布时间】:2020-04-03 09:46:17
【问题描述】:

我使用 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-core aws-lambda amazon-cloudformation aws-serverless


    【解决方案1】:

    在“x-amazon-apigateway-integration”对象的端点中的无服务器 YML 文件中,将“contentHandling”设置为“CONVERT_TO_BINARY”。检查这个Content Type Conversions in API Gateway

    【讨论】:

    • 我没有使用我提到的任何 yaml 文件。我正在使用 serverless.template 这是一个 CloudFormation 模板。目前尚不清楚将其放在此模板中的哪个位置。我还在 AWS 控制台的响应集成中设置了 convert_to_binary。
    • @Tony_Henrich 你解决问题了吗?你能分享解决方案吗?我遇到了同样的问题。谢谢
    猜你喜欢
    • 2019-06-19
    • 2017-05-16
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 2018-06-09
    相关资源
    最近更新 更多