无服务器快递无法检索 pdf 文件(base64 编码)

Posted

技术标签:

【中文标题】无服务器快递无法检索 pdf 文件(base64 编码)【英文标题】:serverless express can't retrieve pdf file (base64 encoding) 【发布时间】:2018-03-23 06:53:48 【问题描述】:

我已经设置了一个 express/serverless 应用程序来检索一个 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 编码数据

【问题讨论】:

您的问题到底是什么?发生了什么,没有发生什么应该是? 希望现在更好 【参考方案1】:

lambda 会自动编码为 base64,所以我不得不删除它并直接发送缓冲区。

【讨论】:

以上是关于无服务器快递无法检索 pdf 文件(base64 编码)的主要内容,如果未能解决你的问题,请参考以下文章

如何在打字稿快递服务器中将字符串解码/编码为base64

base64解码文件不等于原始未编码文件

base64 嵌入式 PDF 文件不会在 Chrome 中呈现

如何在 iframe 中设置 base64 pdf 的文件名?

Pdf与Base64编码之间的转换

从 Base64 编码的字符串中检索 MIME 类型