Javascript 无法使用Node.js中的aws sdk加载PDF文档
我在将pdf文件上载到S3时遇到问题 我可以使用Javascript 无法使用Node.js中的aws sdk加载PDF文档,javascript,node.js,amazon-s3,aws-sdk,Javascript,Node.js,Amazon S3,Aws Sdk,我在将pdf文件上载到S3时遇到问题 我可以使用PDFkit创建pdf文件并将其存储在本地(我可以在浏览器中查看) 但是,当我尝试将它们上载到S3存储时,在浏览器中打开PDF时出现以下错误:无法加载PDF文档。。您可以查看: 我尝试了很多选择: 1) 使用Buffeer而不使用Buffer 2) 我上传.txt文件没有问题 3) 我甚至尝试将字符串作为正文值传递 在写这个问题之前,我做了一个小调查,发现了类似的问题: 不幸的是,这对我没有多大帮助…我在S3上传方面也遇到了同样的问题。我无法打
PDFkit
创建pdf文件并将其存储在本地(我可以在浏览器中查看)
但是,当我尝试将它们上载到S3存储时,在浏览器中打开PDF时出现以下错误:无法加载PDF文档。。您可以查看:
我尝试了很多选择:
1) 使用Buffeer
而不使用Buffer
2) 我上传.txt
文件没有问题
3) 我甚至尝试将字符串作为正文
值传递
在写这个问题之前,我做了一个小调查,发现了类似的问题:
不幸的是,这对我没有多大帮助…我在S3上传方面也遇到了同样的问题。我无法打开PDF,它的大小只有几个字节(而不是几个KB)。我认为问题在于我没有等待写入流完成 这对我现在很有用:
document.pipe(fs.createWriteStream(文件名));
document.end();
document.on('end',function(){
fs.readFile(文件名、函数(错误、数据){
如果(错误){
控制台日志(err);
}
s3.上传({
桶:S3桶,
关键字:文件名,
正文:数据,
ContentType:'application/pdf',
acl:'私有',
contentDisposition:'附件',
服务器端加密:“AES256”
},函数(错误,数据){
如果(错误){
控制台日志(err);
}
});
});
});代码>现在回答太晚了。
但是我的回答是,如果有人来到这个页面,他/她将得到正确的方法
我制作了一个git,它可以在任何类型的文件中完美运行。您是如何修复它的?遇到同样的问题issue@tskittles查证
fs.readFile('../pdf/' + fileName, 'utf8', function (err, contents) {
const buf = new Buffer(contents, 'base64');
// define params
const params = {
Bucket: 'pdf-twitter-bucket',
Key: 'twitter/' + fileName,
Body: buf,
ContentType: 'application/pdf',
ACL: 'public-read'
};
s3bucket.upload(params, function (err) {
if (err) {
console.log('error in callback');
console.log(err);
}
res.end(
'https://s3.us-east-2.amazonaws.com/pdf-twitter-bucket/twitter/' +
fileName
); // send the link to s3
});
});