操作场景
使用 API 网关后端对接云函数 SCF 时,由于触发器限制,不支持直接上传二进制文件,必须经过 Base64 编码后上传。API 网关支持将客户端请求体 Base64 编码后传递给云函数 SCF,为 API 开启此功能后,您无需改造客户端代码即可将二进制文件上传至云函数 SCF。
为满足不同场景的要求,腾讯云 API 网关 Base64 编码功能提供了“全部触发”和“Header 触发”两种触发方式供您选择:
- 全部触发:API 开启全部触发后,每次请求的请求内容都会被 Base64 编码后再传递给云函数。
- Header 触发:API 开启 Header 触发后,必须配置触发规则。API 网关将根据触发规则对请求头进行校验,只有拥有特定 Content-Type 或 Accept 请求头的请求会被 Base64 编码后再传递给云函数,不满足条件的请求将不进行 Base64 编码,直接传递给云函数。
交互流程
操作步骤
配置全部触发
- 登录 API 网关控制台 ,在左侧导航栏单击服务。
- 在服务列表中,单击目标服务的服务 ID,查看 API 列表。
- 单击新建,填写 API 前端配置,单击下一步。
- API 后端类型选择云函数 SCF,勾选“Base64编码”,完成后续配置流程。此时创建的 API 已经开启了 Base64 编码,并默认为“全部触发”。
配置 Header 触发
- 登录 API 网关控制台 ,在左侧导航栏单击服务。
- 在服务列表中,单击目标服务的服务 ID,查看 API 列表。
- 在 API 列表中,单击目标 API 的 API ID(目标 API 必须是后端对接 SCF 的 API),即可查看 API 详情页。 在 API 详情页中,单击基础配置标签页,找到Base64编码配置项。
- 单击"Base64"后的编辑,选择触发方式为Header触发。单击添加触发规则,选择参数并填写参数值。
- 确认配置信息无误后,最后单击保存即可。
注意事项
- 对于每次成功触发 Base64 编码的请求,API 网关不仅会对请求体进行 Base64 编码,还会把 isBase64Encoded 字段的值设置为 True 一起传递给云函数,该字段可用于通知云函数本次请求是否经过 Base64 编码(后端对接云函数的结构体请参考 API 网关传递给后端的结构体)。
- 由于触发器限制,API 网关单次传递给云函数的请求内容不能大于 6MB。因此,本功能只适用于传递 Base64 编码后小于 6MB 的文件,传递大于 6MB 的文件请您参考 上传文件 采用 COS 方式上传。
- Header 触发的触发规则采用模糊匹配,仅支持 Content-Type 和 Accept 请求头。多条触发规则间是“或”的关系,只需满足其中一条触发规则就可以触发 Base64 编码。