AWS Lambda返回PDF文件

我创build了一个使用无服务器的lambda函数。 这个函数是通过GET请求的API网关触发的,并且应该从缓冲区中返回一个pdf文件。 我正在使用html-pdf创build缓冲区,并尝试使用以下命令返回PDF文件

let response = { statusCode: 200, headers: {'Content-type' : 'application/pdf'}, body: buffer.toString('base64'), isBase64Encoded : true, }; return callback(null, response); 

但浏览器只是无法加载PDF,所以我不知道如何将PDF文件直接返回到浏览器。 无法find解决scheme。

好,我find了答案。 我的响应对象的设置是好的,我只需要手动更改API网关中的设置,以便在浏览器中工作。 在API Gateway控制台的二进制设置下,我已经在二进制媒体types中添加了“* / *”

API GATEWAY

  1. 只需login到您的控制台
  2. select你的API
  3. 点击下拉菜单中的二进制支持
  4. 编辑二进制媒体types并添加“* / *”

前端

在新标签中打开api url(target =“_ blank”)。 可能浏览器正在处理编码的base 64响应,在我的情况下,浏览器只是打开PDF格式在一个新的选项卡就像我想要的。

如果您有一个巨大的PDF,那么Lambda将花费很长时间才能将其返回,而在Lambda中,您每100ms收费一次。

我将它保存到S3,然后让Lambda返回S3 url到客户端进行下载。