【发布时间】:2016-02-16 19:32:24
【问题描述】:
我在 Node.js 中使用 Sharp 和 Multer,但我遇到了一些内存问题。使用此代码完成该过程后,使用的缓冲区似乎没有被释放:
var storage = multer.memoryStorage(),
upload = multer({
storage: storage
}).single('picture');
router.post('/save', function (req, res) {
upload(req, res, function (err) {
sharp(req.file.buffer)
.resize(400, 400)
.max()
.toFormat('jpeg')
.toFile("public/images/picture.jpg", function (err) {
res.send(true);
});
});
});
每次我发送图片时,所使用的内存都会随着图片的大小而增加,并且永远不会被清除。
我尝试过不使用 Sharp(所以基本上只是发送文件而不进行处理),但问题仍然存在。
如果用户上传大量文件,恐怕会占用大量内存。
我可以做些什么来改进这段代码?
【问题讨论】: