使用 API Gateway 控制台启用二进制支持 - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 API Gateway 控制台启用二进制支持

本节说明如何使用 API Gateway 控制台启用二进制支持。例如,我们使用一个与 Amazon S3 集成的 API。我们的任务重点是设置受支持的媒体类型并指定如何处理负载。有关如何创建与 Amazon S3 集成的 API 的详细信息,请参阅教程:创建 REST API 作为 Amazon S3 代理

使用 API Gateway 控制台启用二进制支持
  1. 设置 API 的二进制媒体类型:

    1. 创建新 API 或选择现有 API。在本例中,我们将 API 命名为 FileMan

    2. 在主导航面板中所选的 API 之下,选择 API 设置

    3. API 设置窗格中的二进制媒体类型部分,选择管理媒体类型

    4. 选择添加二进制媒体类型

    5. 在文本输入字段中输入所需的媒体类型,例如 image/png。如果需要,请重复此步骤,添加更多媒体类型。要支持所有二进制媒体类型,请指定 */*

    6. 选择 Save changes(保存更改)

  2. 设置如何针对 API 方法处理消息负载:

    1. 创建新资源或选择 API 中的现有资源。在本例中,我们使用 /{folder}/{item} 资源。

    2. 对该资源创建新方法或选择一个现有方法。例如,我们使用与 Amazon S3 中的 GET /{folder}/{item} 操作集成的 Object GET 方法。

    3. 对于内容处理,选择一个选项。

      如果不想在客户端和后端接受相同的二进制格式时转换正文,则选择传递。当存在后端要求将二进制请求负载作为 JSON 属性传入等情况时,选择转换为文本以将二进制正文转换为 Base64 编码的字符串。当客户端提交 Base64 编码的字符串且后端需要原始二进制格式,或者当端点返回 Base64 编码的字符串且客户端只接受二进制输出时,选择转换为二进制

    4. 对于请求正文传递,选择当未定义模板时(推荐),以在请求正文上启用传递行为。

      您也可以选择从不。这意味着 API 将拒绝其内容类型没有映射模板的数据。

    5. 在集成请求中保留传入请求的 Accept 标头。如果您已将 contentHandling 设置为 passthrough 并且希望在运行时覆盖该设置,则应执行此操作。

    6. 转换为文本时,请定义映射模板,以将 Base64 编码的二进制数据转换为所需格式。

      以下是用于转换为文本的映射模板的示例:

      { "operation": "thumbnail", "base64Image": "$input.body" }

      此映射模板的格式取决于输入的端点要求。

    7. 选择保存