当前位置: 首页 > 面试题库 >

AWS Lambda无法返回PDF文件

林泰平
2023-03-14
问题内容

我已经使用serverless创建了一个lambda函数。该函数通过API网关在GET请求上触发,并应从缓冲区返回pdf文件。我正在使用html-
pdf
创建缓冲区,并尝试使用以下命令返回pdf文件

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

但是浏览器只是无法加载pdf,所以我不知道确切如何将pdf文件直接返回到浏览器。找不到解决方案。


问题答案:

好吧,我找到了答案。我的响应对象中的设置很好,我只需要手动更改API Gateway中的设置即可在浏览器中使用。我在API
Gateway控制台的二进制设置下为二进制媒体类型添加了“ * / *”

API网关

  1. 只需登录您的控制台
  2. 选择你的API
  3. 单击下拉列表中的二进制支持
  4. 编辑二进制媒体类型并添加“ * / *”

前端

在新标签页中打开api网址(target =“ _ blank”)。可能是浏览器正在处理已编码的base
64响应。就我而言,对于chrome,浏览器只是在新标签页中打开pdf,就像我想要的那样。



 类似资料:
  • 在我的主要活动中: 编辑:我在主线程上运行了网络代码,它引发了一个异常。现在为下载创建一个新的线程,它将获得示例PDF(http://www.pdf995.com/samples/PDF.PDF),并将其内容放入文件中。感谢@GreenApps!

  • 问题内容: 我正在在线关注CS106A的讲座。我正在阅读第12讲中的代码,但这给了我Eclipse错误。 这是我的代码。似乎错误是由于我的方法中的单词void 。我尝试删除main方法,但是没有它,Java当然无法运行。 我是一名新手,没有人解释这东西的真正含义,但有人告诉我,请不要理会它并使用它。如果有人也可以向我解释,我将不胜感激。 这个错误也出现在“ toLower”方法上。不知道这意味着什

  • 这是MyFragmentPagerAdapter类,它扩展了FragmentPagerAdapter。返回我的片段时发现错误 我的国家详情如下。它扩展了Fragment,我将2个文本视图填充到一个视图寻呼机中,如下所示。 堆栈跟踪如下 03-03 05:15:31.093: E/AndreidRuntime(910): FATAL EXCEPTION: main 03-03 05:15:31.09

  • 我不熟悉symfony2,也不了解symbog。在第三章中,在尝试使用数据装置时,我尝试了以下命令: 但我得到了一个错误: 所以我在谷歌上搜索了一下,试了一下 但仍然得到同样的错误。因此,请指导如何使用wamp在symfony2中安装新的扩展或捆绑包,如数据装置。

  • 问题内容: 我刚刚学习(正在学习)函数参数在Python中的工作方式,并且在没有明显原因的情况下开始进行实验: 给出了输出: 哪里来的?还有,这是什么? 问题答案: 它是函数的返回值,您可以将其打印出来。如果没有语句(或者只是没有参数的),则将隐式添加到函数的末尾。 您可能想返回函数中的值,而不是打印它们: