如何通过Postman从API Gateway/Lambda的POST请求下载CSV/XLSX文件
解决Postman下载Lambda返回的CSV/XLSX文件为TXT的问题
核心问题原因
API Gateway默认会将未配置的媒体类型响应视为文本处理,即使Lambda已返回base64编码并标记isBase64Encoded=true,网关仍会直接返回原始base64字符串,导致Postman将其识别为TXT文件。
解决方案步骤
1. 配置API Gateway二进制媒体类型
- 登录AWS控制台,进入目标API的API Gateway管理页面
- 切换到设置标签页
- 在二进制媒体类型区域,添加以下MIME类型:
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet(对应XLSX)text/csv(对应CSV)
- 保存设置后,重新将API部署到对应的阶段(如prod/test)
2. 确认Lambda响应配置
- 确保Lambda代码中已正确设置
withIsBase64Encoded(true),从你提供的代码来看这部分配置是正确的,无需修改,但需检查后续逻辑未覆盖该标记。
3. Postman端验证与调整
- 发送请求后,查看响应头,确认
Content-Type和Content-Disposition与预期一致 - 若头信息正确但仍下载为TXT,可手动切换Postman响应解析模式:
- 在响应区域点击Raw旁的下拉菜单,选择Binary
- 点击Save Response即可保存为正确格式的文件
内容的提问来源于stack exchange,提问作者Mike Warren
相关产品推荐
相关产品推荐

