为 pdf 文件创建读取流以上传到 s3 存储桶
Posted
技术标签:
【中文标题】为 pdf 文件创建读取流以上传到 s3 存储桶【英文标题】:Create a read stream for a pdf file to upload to s3 bucket 【发布时间】: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();
任何有关如何解决此问题的帮助或建议将不胜感激。
【问题讨论】:
【参考方案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();
【讨论】:
以上是关于为 pdf 文件创建读取流以上传到 s3 存储桶的主要内容,如果未能解决你的问题,请参考以下文章