我的任务是在后端读取PDF文件,并以编码格式发送给客户端,并带有相应的响应标头,以在客户端下载文件。
我正在将Lambda代理与AWS API网关集成在一起,这种情况下的快速服务器。
将Custom Lambda与API网关结合使用时,我可以从邮递员下载PDF,但是当我使用代理集成时,它可以为我下载空白的pdf内容文件。
在两种情况下,我都从api网关发送二进制数据给客户。
但是在自定义集成中,我通过启用对CONVERT_TO_BINARY的内容处理在API网关控制台中更改了此设置。
但是在代理服务器中,我是通过代码完成的,并将二进制文件发送到客户端。
file = fs.readFileSync('/tmp/statistics.pdf');
var base64 = file.toString('base64');
var buff = new Buffer(base64, 'base64');
var binary = buff.toString('binary');
res.writeHead(200, {
'Content-Type': 'application/pdf',
'Content-Disposition': 'attachment;
filename="statistics.pdf"'
});
res.end(binary);
这是我从api网关向客户端发送数据的示例代码 请帮我弄清楚我对此很困惑。