Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将PDF上载到Amazon S3并在浏览器中显示_Node.js_Amazon S3 - Fatal编程技术网

Node.js 将PDF上载到Amazon S3并在浏览器中显示

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供公众查看,所以这不是这里的问题。您可以补充一些关于您正在尝试做什么以及遇到什么问

我正在导入一个HTML文件,并使用“HTML pdf”模块将其转换为pdf,并使用手柄在HTML文件中嵌入动态URL。然后我将HTML文件转换为缓冲区,并希望以pdf格式上载到amazon s3。为此,我使用了bufferinbody选项。我得到了正确的缓冲区,但当我以pdf文件的形式上传到amazon s3时,会生成一个链接,但在浏览器中打开链接时,我收到一个错误“加载pdf失败”


我已经制作了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!");
                  }
                });     
            }
        });
    }
})