数据转换后API Gateway请求体大小超限原因及配置疑问
问题解析与解答
你的猜测是否正确?
不正确。API Gateway不会自动解压请求体中的ZIP文件,它仅校验原始请求体的实际大小,不会解析请求内容并执行解压操作。
可能的其他报错原因
- 请求体总大小超出限制:FormData采用
multipart/form-data格式时,会额外添加边界分隔符、表单字段头部等元数据,这些内容会增加请求体总大小。即使ZIP文件本身小于5MB,加上这些元数据后,总请求体可能突破API Gateway默认的10MB上限。 - 转换导致体积膨胀:如果配置了将二进制数据转为Base64编码的规则,Base64会让数据体积增加约33%。若原本接近10MB的请求体(含元数据)经过转换后,会直接超过限制。
- 阶段自定义限制:检查API Gateway的阶段配置,是否为该阶段设置了小于10MB的请求体大小限制,覆盖了全局默认值。
- 日志数值误解:确认CloudWatch日志中显示的“请求体大小xxxxxx字节”是否确实大于10485760(10MB),避免混淆字节数与文件大小的单位。
请求体转换的配置方法
可以通过API Gateway控制台调整请求体转换逻辑:
- 关闭不必要的转换:在对应API方法的「集成请求」->「请求体转换」中,设置为**“通过传递请求体”(Pass through)**模式,让API Gateway直接转发原始请求体到Lambda,不做任何转换。
- 配置二进制媒体类型:在API的「设置」->「二进制媒体类型」中添加
application/zip、multipart/form-data等类型,确保API Gateway将这些类型的请求体作为二进制数据处理,避免自动转成Base64编码。 - 移除无效转换模板:如果之前配置了针对
multipart/form-data或二进制类型的转换模板且无实际需求,直接删除这些模板,减少不必要的处理开销。
内容的提问来源于stack exchange,提问作者Deepak Singh
相关产品推荐
相关产品推荐

