使用API​​网关和Lamda

时间:2017-07-27 05:03:54

标签: node.js amazon-s3 aws-lambda aws-api-gateway

我有nodejs lamda函数,它从s3存储桶中读取s3文件,并由使用Lamda代理的api网关提供服务

    function readS3(bucket,objectName){
         return new Promise((resolve, reject) => {
                AWS.S3.getObject({
                    Bucket: bucket,
                    Key: objectName
                }, function (err, data) {
                    if (err) {
                        console.log('cannot read s3');
                        console.log(err, err.stack);
                        reject(err);
                    } else {
                        resolve(data);
                    }
                });
            });
    }

readS3(bucket,objName).then((data)=>{
 let response = {
            statusCode:200,
            headers: {

                "Access-Control-Allow-Origin": "*", 
                "Access-Control-Allow-Credentials": true, 
                "Content-Type": 'application/pdf',
                "Content-Disposition": 'filename=test.pdf'
            },
            body: data.Body.toString('utf-8')
        };
callback(null,response);
})

代码工作正常,但下载的pdf文件错过了图像和一些自定义格式。表格和粗体等基本格式很好。 S3存储桶中的pdf很好,当我直接从S3下载时,它没有任何问题。 我在.toString方法中尝试过不同的编码,但都没有。 这是因为我正在阅读s3中的内容,还是api网关的问题?

0 个答案:

没有答案