Node.js 将PDF内容上载到S3存储桶中

Node.js 将PDF内容上载到S3存储桶中,node.js,amazon-web-services,pdf,amazon-s3,aws-lambda,Node.js,Amazon Web Services,Pdf,Amazon S3,Aws Lambda,我正在尝试从远程位置下载包含数据的PDF内容,并将内容作为PDF文件上传到S3中。我在AWS lambda的上下文中使用NodeJS。s3.putObject参数函数成功解析,并按预期将pdf文件保存到s3存储桶中,但查看时文档为空,这表明所有数据可能尚未传递到s3.putObject 这是我的密码 const request=require('request')) const viewUrl=”https://link_to_downloadable_pdf/" 常量选项={ url:vie

我正在尝试从远程位置下载包含数据的PDF内容,并将内容作为PDF文件上传到S3中。我在AWS lambda的上下文中使用NodeJS。s3.putObject参数函数成功解析,并按预期将pdf文件保存到s3存储桶中,但查看时文档为空,这表明所有数据可能尚未传递到s3.putObject

这是我的密码

const request=require('request'))
const viewUrl=”https://link_to_downloadable_pdf/"
常量选项={
url:viewUrl,
标题:{
“内容类型”:“应用程序/pdf”
}
};
请求(选项、功能(错误、恢复、正文){
if(err){return console.log(err)}
const base64data=新缓冲区(主体“二进制”);
常量参数={
桶:“myS3bucket”,
关键字:“我的pdf.pdf”,
ContentType:“应用程序/pdf”,
正文:base64data,
ACL:“公共读取”
};  
s3.putObject(参数、函数(错误、数据){
如果(错误){
控制台日志(err);
}否则{
回调(null,JSON.stringify(数据))
}  
})
你能试试这个代码吗?:)


我会注意任何事情。希望能帮助您

我怀疑您需要将PDF响应流式传输到putObject(),或者将整个文件下载到本地PDF,然后从那里上载(但流式传输会更好)。您解决了这个问题吗?
    import AWS from 'aws-sdk'
    const request = require('request')
    const S3 = new AWS.S3()

    var promise = new Promise((resolve, reject) => {
        return request({ url : 'https://link_to_downloadable_pdf/', encoding : null }, 
        function(err, res, body){

            if(err)
                return reject({ status:500,error:err })

            return resolve({ status:200, body: body})        
        })
    })

    promise.then((pdf) => {

        if(pdf.status == 200)
        {
            console.log('uploading file..')

            s3.putObject({
                Bucket: process.env.bucket,
                Body: pdf.body,
                Key: 'my-pdf.pdf',
                ACL:'public-read'
            }, (err,data) => {
                if(err)
                    console.log(err)
                else
                    console.log('uploaded')
            })
        }
    })