Node Multer内存存储:如何释放内存
Node Multer memory storage: how to release memory
好的multer支持内存存储,这个不错
请问上传文件后如何释放内存?
存储=multer.memoryStorage();
upload = multer({ storage : storage }).single('image');
对于磁盘存储,我可以删除dest文件夹中的文件。
- 另外,如果 2 个用户上传具有相同文件名的文件,内存存储会发生什么情况?
谢谢!
- but how to release the memory after uploading the file ?
完成请求后,内存将被释放。
(当 垃圾收集器 (GC) 清理时,通常几乎是立即清理)
- Also what happens if 2 user uploading the files with same file name,
what's going to happen to memory storage ?
您不必担心,因为每个文件都在其自己的范围内处理,这意味着,就像我上面提到的,每个请求都会被处理,然后,一旦完成,请求就会被清除(连同存储的request.file 来自内存存储)
我建议你检查 multer 如何处理内存存储 multer/storage/memory.js (github)
MemoryStorage.prototype._handleFile = function _handleFile (req, file, cb) {
file.stream.pipe(concat(function (data) {
cb(null, {
buffer: data,
size: data.length
})
}))
}
如您所见,文件只是被流式传输到回调 (cb),因此没有全局引用可以阻止它驻留在内存中(没有对它的引用 = 不再需要 = 垃圾 = GC)
memoryStorage主要是临时处理文件缓冲区。
示例:您想要接收小文件并将它们转发到另一台存储媒体的服务器。
(multer 接收存储在内存中的温度,一旦不再引用它,就会自行中继并释放内存)
好的multer支持内存存储,这个不错
请问上传文件后如何释放内存?
存储=multer.memoryStorage();
upload = multer({ storage : storage }).single('image');
对于磁盘存储,我可以删除dest文件夹中的文件。
- 另外,如果 2 个用户上传具有相同文件名的文件,内存存储会发生什么情况?
谢谢!
- but how to release the memory after uploading the file ?
完成请求后,内存将被释放。
(当 垃圾收集器 (GC) 清理时,通常几乎是立即清理)
- Also what happens if 2 user uploading the files with same file name, what's going to happen to memory storage ?
您不必担心,因为每个文件都在其自己的范围内处理,这意味着,就像我上面提到的,每个请求都会被处理,然后,一旦完成,请求就会被清除(连同存储的request.file 来自内存存储)
我建议你检查 multer 如何处理内存存储 multer/storage/memory.js (github)
MemoryStorage.prototype._handleFile = function _handleFile (req, file, cb) {
file.stream.pipe(concat(function (data) {
cb(null, {
buffer: data,
size: data.length
})
}))
}
如您所见,文件只是被流式传输到回调 (cb),因此没有全局引用可以阻止它驻留在内存中(没有对它的引用 = 不再需要 = 垃圾 = GC)
memoryStorage主要是临时处理文件缓冲区。
示例:您想要接收小文件并将它们转发到另一台存储媒体的服务器。 (multer 接收存储在内存中的温度,一旦不再引用它,就会自行中继并释放内存)