TXT文件可以在Heroku上使用流下载,但对于PDF文件失败-NodeJS,Heroku

问题描述 投票:0回答:1

我无法下载pdf文件并使用“ heroku run bash”]在Heroku上查看。但是相同的代码确实适用于heroku上的txt文件。而相同的代码适用于本地计算机上的txt和pdf文件。

[我在这里(https://github.com/heroku/node-js-getting-started.git)找到了git clone Heroku Nodejs git存储库(git clone https://devcenter.heroku.com/articles/getting-started-with-nodejs),并将应用程序推送到了Heroku。

将fs和https库添加到nodejs项目。

const express = require('express')
const path = require('path')
var fs = require('fs');
const https = require('https');

const AWS = require('aws-sdk');

AWS.config.loadFromPath('./config.json');
const s3 = new AWS.S3({apiVersion: '2006-03-01'});
const URL = "<YOUR_URL>";

const PORT = process.env.PORT || 5000

express()
  .use(express.static(path.join(__dirname, 'public')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .get('/', (req, res) => res.render('pages/index'))
  .get('/test', function(req,res) {  

    const file = fs.createWriteStream("XXXXXX-pdf.pdf");
    https.get("XXXXX-pdf.pdf", response => {
      var stream = response.pipe(file);

      stream.on("finish", function() {
        console.log("done");

        try{

            // Create params for putObject call
            const objectParams = {
                Bucket: "<YOUR_BUCKET>", 
                Key: "<YOUR_KEY>", 
                ContentLength: headers['content-length'],
                Body: stream
            };
            // Create object upload promise
            await s3.putObject(objectParams).promise();
        } catch(err){
            console.log("ERROR --->" + err)
        }
      });
    });
  })
  .listen(PORT, () => console.log(`Listening on ${ PORT }`))

我无法使用“ heroku run bash”下载pdf文件并在Heroku上查看。但是相同的代码确实适用于heroku上的txt文件。而相同的代码适用于本地计算机中的txt和pdf文件。我...

node.js heroku
1个回答
0
投票

“ heroku run bash”无法可靠地看到刚刚上载的文件,因为不能保证它在相同的heroku dyno上运行。

© www.soinside.com 2019 - 2024. All rights reserved.