使用 API Gateway 控制台启用二进制支持
本节说明如何使用 API Gateway 控制台启用二进制支持。例如,我们使用一个与 Amazon S3 集成的 API。我们的任务重点是设置受支持的媒体类型并指定如何处理负载。有关如何创建与 Amazon S3 集成的 API 的详细信息,请参阅教程:创建 REST API 作为 Amazon S3 代理。
使用 API Gateway 控制台启用二进制支持
-
设置 API 的二进制媒体类型:
-
创建新 API 或选择现有 API。在本例中,我们将 API 命名为
FileMan
。 -
在主导航面板中所选的 API 之下,选择 API 设置。
-
在 API 设置窗格中的二进制媒体类型部分,选择管理媒体类型。
-
选择添加二进制媒体类型。
-
在文本输入字段中输入所需的媒体类型,例如
image/png
。如果需要,请重复此步骤,添加更多媒体类型。要支持所有二进制媒体类型,请指定*/*
。 -
选择 Save changes(保存更改)。
-
-
设置如何针对 API 方法处理消息负载:
-
创建新资源或选择 API 中的现有资源。在本例中,我们使用
/{folder}/{item}
资源。 -
对该资源创建新方法或选择一个现有方法。例如,我们使用与 Amazon S3 中的
GET /{folder}/{item}
操作集成的Object GET
方法。 -
对于内容处理,选择一个选项。
如果不想在客户端和后端接受相同的二进制格式时转换正文,则选择传递。当存在后端要求将二进制请求负载作为 JSON 属性传入等情况时,选择转换为文本以将二进制正文转换为 Base64 编码的字符串。当客户端提交 Base64 编码的字符串且后端需要原始二进制格式,或者当端点返回 Base64 编码的字符串且客户端只接受二进制输出时,选择转换为二进制。
-
对于请求正文传递,选择当未定义模板时(推荐),以在请求正文上启用传递行为。
您也可以选择从不。这意味着 API 将拒绝其内容类型没有映射模板的数据。
-
在集成请求中保留传入请求的
Accept
标头。如果您已将contentHandling
设置为passthrough
并且希望在运行时覆盖该设置,则应执行此操作。 -
转换为文本时,请定义映射模板,以将 Base64 编码的二进制数据转换为所需格式。
以下是用于转换为文本的映射模板的示例:
{ "operation": "thumbnail", "base64Image": "$input.body" }
此映射模板的格式取决于输入的端点要求。
-
选择保存。
-