Node.js 将PDF上载到Amazon S3并在浏览器中显示
我正在导入一个HTML文件,并使用“HTML pdf”模块将其转换为pdf,并使用手柄在HTML文件中嵌入动态URL。然后我将HTML文件转换为缓冲区,并希望以pdf格式上载到amazon s3。为此,我使用了bufferinbody选项。我得到了正确的缓冲区,但当我以pdf文件的形式上传到amazon s3时,会生成一个链接,但在浏览器中打开链接时,我收到一个错误“加载pdf失败”Node.js 将PDF上载到Amazon S3并在浏览器中显示,node.js,amazon-s3,Node.js,Amazon S3,我正在导入一个HTML文件,并使用“HTML pdf”模块将其转换为pdf,并使用手柄在HTML文件中嵌入动态URL。然后我将HTML文件转换为缓冲区,并希望以pdf格式上载到amazon s3。为此,我使用了bufferinbody选项。我得到了正确的缓冲区,但当我以pdf文件的形式上传到amazon s3时,会生成一个链接,但在浏览器中打开链接时,我收到一个错误“加载pdf失败” 我已经制作了s3 bucket供公众查看,所以这不是这里的问题。您可以补充一些关于您正在尝试做什么以及遇到什么问
我已经制作了s3 bucket供公众查看,所以这不是这里的问题。您可以补充一些关于您正在尝试做什么以及遇到什么问题的信息吗。目前,您的问题主要是代码。我正在导入一个HTML文件,并使用“HTML pdf”模块将其转换为pdf,并使用手柄将动态URL嵌入标记中的HTML文件中。然后,我将HTML文件转换为缓冲区,并希望上载到amazon s3。为此,我使用了bufferinbody选项。我得到了正确的缓冲区,但当我以pdf文件的形式上传到amazon s3时,会生成一个链接,但在浏览器中打开链接时,我收到一个错误“加载pdf失败”。请将您的问题包含在进一步的信息中。请检查问题@ralfstubner您得到答案了吗?
const fs = require('fs');
const pdf = require('html-pdf');
const AWS = require("aws-sdk");
//Read html file
function readHTMLfile(path, callback) {
fs.readFile(path, {encoding: 'utf-8'}, function(err, html) {
if(err) {
callback(err);
}
else {
callback(null, html)
}
})
}
//importing HTML file
readHTMLfile(__dirname + '/Nda.html', function(err, html) {
if(err) {
console.log('Error: ',err)
}
else {
var handlebars = require("handlebars");
var template = handlebars.compile(html);
var replacables = {
url: 'http://politicalmemorabilia.com/wp-content/uploads/2014/10/2000px-Aaron_Burr_signature.png'
}
var HtmlToSend = template(replacables);
//pdf.create(HtmlToSend).toStream(function(err, stream){
pdf.create(HtmlToSend).toBuffer(function(err, buf){
if(err){
return console.log(err);
}
else {
console.log('This is a buffer:', buf);
//stream.pipe(fs.createWriteStream('./Nda2.pdf'));
//var readableStream = fs.readFileSync('./Nda2.pdf', 'base64')
// console.log('Readable Stream: ',readableStream)
// var buf = new Buffer('readableStream', 'base64')
// console.log('Buffer String ',buf.toString())
//console.log('Readable Stream ',readableStream)
//console.log('Pdf Content', ./Nda2.pdf);
AWS.config.update({
accessKeyId: "AKIAIRJAKT756L72NPBA",
secretAccessKey: "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"
});
var s3Bucket = new AWS.S3({ params: { Bucket: "vizitor-profilepicture" } });
var options = {
Key: `nda/Nda`,
Body: 'buf',
ContentEncoding: "buffer",
//ContentDisposition: "inline",
ContentType: "application/pdf"
};
s3Bucket.upload(options, function(err, data) {
if (err) {
console.log(err);
console.log("Error uploading data: ", data);
} else {
console.log('Data: ',data)
console.log("data: ", data.Location);
console.log("succesfully uploaded pdf!");
}
});
}
});
}
})