【问题标题】:Create a read stream for a pdf file to upload to s3 bucket为 pdf 文件创建读取流以上传到 s3 存储桶
【发布时间】:2021-10-20 02:05:46
【问题描述】:

我有一项快速服务,它从我的前端获取一个 pdf 文件并将其保存到 s3 存储桶中。我在尝试获取文件并创建流时遇到问题,以便我可以将其传递给 s3 上传功能。我试图避免将文件写入光盘,所以我认为我不能使用fs.createReadStream(),但我似乎找不到其他方法来做到这一点..

router.post('/upload', upload.single('my-pdf'), async (req, res, next) {
   const file = req.file;
   
   // Needs a file path not an actual file
   const stream = fs.createReadStream(file);

   return s3.upload(file).promise();
}

任何有关如何解决此问题的帮助或建议将不胜感激。

【问题讨论】:

    标签: node.js express amazon-s3 stream fs


    【解决方案1】:

    假设req.file.<name_of_upload_field> 是一个保存文件内容的缓冲区,您可以通过

    将其转换为可读流
    var str = new stream.PassThrough();
    str.end(req.file.<name_of_upload_field>);
    return s3.upload(str).promise();
    

    【讨论】:

      猜你喜欢
      • 2018-12-30
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      • 2018-08-31
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      相关资源
      最近更新 更多