gpt4 book ai didi

node.js - 将 PDF 内容上传到 S3 存储桶

转载 作者:太空宇宙 更新时间:2023-11-03 22:23:58 24 4
gpt4 key购买 nike

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

这是我的代码。

const request = require('request')
const viewUrl = "https://link_to_downloadable_pdf/"

const options = {
url: viewUrl,
headers: {
'Content-Type': 'application/pdf'
}
};

request(options, function(err, res, body){
if(err){return console.log(err)}
const base64data = new Buffer(body, 'binary');
const params = {
Bucket: "myS3bucket",
Key: "my-pdf.pdf",
ContentType: "application/pdf",
Body: base64data,
ACL: 'public-read'
};

s3.putObject(params, function(err, data) {
if (err) {
console.log(err);
} else {
callback(null, JSON.stringify(data))
}
})

当我在 Postman 中测试 URL 时,它返回包含数据的 PDF。知道为什么 NodeJS 代码可能不做同样的事情吗?

最佳答案

你能试试这个代码吗? :)

    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')
})
}
})

我会留意任何事情。希望对您有帮助

关于node.js - 将 PDF 内容上传到 S3 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49416781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com