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