You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda返回原始图片报错body size过长,Base64却正常?

AWS Lambda返回图片时原始字节报错但Base64正常的原因

核心原因:Lambda响应的序列化机制差异

Lambda对响应的处理逻辑取决于你是否指定isBase64Encoded参数:

  • 当直接返回原始图片字节时,Lambda默认会把响应当作JSON内容处理。二进制数据里的非UTF-8字节会被JSON转义成\u00XX这类Unicode序列,这会让最终序列化后的响应体积暴涨——远不止原始的3MB,直接触发了Lambda的响应大小限制(最大6MB),所以报错“body size is too long”。
  • 当返回Base64编码后的字符串并设置isBase64Encoded: true时,Lambda会跳过JSON转义步骤,直接将Base64字符串解码为二进制数据返回。虽然Base64编码会让体积增加约33%,但此时的响应体是合法的UTF-8字符串,序列化后的大小就是Base64字符串的长度(约4.1MB),还在Lambda的限制范围内,所以能正常运行。

正确处理方式

返回图片这类二进制内容时,必须:

  1. 将二进制数据编码为Base64字符串
  2. 在Lambda响应对象中设置isBase64Encoded: true
  3. 同时设置正确的Content-Type(比如image/jpeg)

内容的提问来源于stack exchange,提问作者Nakeuh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 19:50:29