node.js - serverless express 无法检索 pdf 文件(base64 编码)

标签 node.js amazon-web-services express pdf serverless-framework

我已经设置了一个快速/无服务器应用程序来检索 GET 请求上的 pdf 文件。但我只是检索损坏的响应 pdf 响应。我只是想知道我的设置是否正确以获得正确的响应。

我正在使用 aws-serverless-express并希望将我的 pdf 缓冲区返回到客户端浏览器(它应该在浏览器中打开)

我的代码:

  status = 200;
  let fileName = "demo.pdf"; 
  res.setHeader('Content-disposition', 'inline; filename="' + fileName + '"');
  res.setHeader('Content-type', 'application/pdf');
  res.setHeader('isBase64Encoded', true);//isBase64Encoded: true

  let pdf = pdfBuffer.toString('base64');
  res.status(status).send(pdf);

所以我向 APIGW 发送了一个 base64 编码的字符串。我实际上不确定是否可以设置 isBase64Encoded 通过标题标记。我以前读过这个,但我不太确定

我之前已经完成了整个过程,但没有使用 aws-serverless-express(我可以轻松设置 isBase64Encoded 标志)

我也在用 serverless-apigw-binary自动设置 APIGW 以正确解码 base64 编码数据

最佳答案

lambda 会自动编码为 base64,因此我不得不将其删除并直接发送缓冲区。

关于node.js - serverless express 无法检索 pdf 文件(base64 编码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46690906/

相关文章:

javascript - 如何在 `res.send` 之后但在响应离开服务器之前 Hook ,==> 当知道 res.statusCode 时

javascript - 在 Nodejs 中访问请求参数

node.js - Mongoose:为什么 $addtoset 添加不正确的 ObjectId

node.js - Jest/NodeJS,如何为 "unhandledRejection"构建测试

ios - AWS SDK iOS 2.0 S3 上传 : add correct md5

javascript - 在哪里可以获得 Node 警告的文件名和行号?

javascript - 根据服务器的响应从客户端发送警报

javascript - Electron 自动更新代理

ubuntu - 无法引导 ec2 ubuntu 实例

security - 在 AWS 安全组中,在端口 443 上设置自定义 TCP 规则与设置 HTTPS 规则(也在 443 上)有什么区别?