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

从AWS Lambda发送PDF至Postman无法加载问题求助

AWS Lambda返回PDF在Postman无法加载的问题排查与解决

可能的原因

  • API Gateway二进制媒体类型配置未生效:虽然添加了application/pdf,但未重新部署API,或者配置存在拼写、优先级问题,导致API Gateway仍将响应按文本处理。
  • HTTP响应头大小写不兼容:Lambda返回的Content-type、content-disposition采用小写格式,部分服务(包括Postman)对HTTP头字段大小写敏感,无法正确识别类型。
  • Postman本地缓存或视图设置问题:Postman缓存了旧的响应配置,或者默认视图未切换到PDF渲染模式,导致直接显示Base64文本。
  • API Gateway集成响应配置缺失:若使用API Gateway代理Lambda,集成响应未正确映射二进制响应头,导致响应被篡改。

解决办法

  • 完善API Gateway二进制配置并重新部署

    1. 在API Gateway控制台的「设置」-「二进制媒体类型」中,确认application/pdf已添加,无拼写错误。
    2. 保存配置后,务必重新部署API到对应阶段,否则配置不会生效。
  • 修正Lambda响应头的大小写格式
    将响应头字段改为标准HTTP驼峰格式,避免识别失败:

    let response = {
      statusCode: 200,
      headers: {
        'Content-Type': 'application/pdf',
        'Content-Disposition': 'attachment; filename=test.pdf'
      },
      body: pdf.toString('base64'),
      isBase64Encoded: true
    };
    console.log(response)
    return response;
    
  • 重置Postman的响应视图与缓存

    1. 在Postman响应面板,切换到「原始」视图后再切回「预览」,或直接选择「渲染PDF」选项(若存在)。
    2. 进入Postman设置,找到「清除缓存」功能,清除本地缓存后重启Postman,避免旧配置干扰。
  • 检查API Gateway集成响应配置

    1. 进入对应API的方法配置,在「集成响应」中,确认200状态码的响应头映射未覆盖Content-Type和Content-Disposition。
    2. 若使用代理集成,确保代理设置允许传递所有响应头,未对二进制内容进行额外转换。
  • 隔离测试定位问题
    直接通过Lambda控制台测试函数,查看返回的响应结构是否正确;再对比API Gateway转发后的响应,确认问题出在Lambda还是API Gateway环节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:18:35