Я пробовал две разные библиотеки: multer и formidable для обработки загрузки файлов в узел, и оба они используют 100% -ный процессор во время загрузки.NodeJS загружать файлы 100% использование процессора
Это проблема общего узла? И как люди справляются с этим в условиях высокой параллелизма?
Node версии: v0.10.36
(я даже попробовал другие варианты, как v0.11.x или v0.10.33)
Formidable например
Picture.upload = function(user, req, cb) {
var formidable = require('formidable')
var form = new formidable.IncomingForm();
form.uploadDir = "./uploads";
form.maxFieldsSize = app.settings.uploadMaxSize * 1024 * 1024;
form.maxFields = 1000;
form.parse(req, function(err, fields, files) {
cb(null, files);
});
}
Multer пример
app.use(multer({ dest: './uploads/',
rename: function (fieldname, filename) {
return filename+Date.now();
},
limits: {
files: 1,
fileSize: app.settings.uploadMaxSize * 1024 * 1024
}
})); // after I process the file from req.files
Файл загружен как multipart/form-data
.
Я использую loopback, но я не думаю, что это имеет значение.
Можете ли вы опубликовать пример кода? Просто дикая догадка, может быть, это относится к https://github.com/felixge/node-formidable/issues/109? –
Я не думаю, что это связано, потому что моя проблема связана с процессором не с использованием памяти. В любом случае, я добавил два фрагмента кода –
вы можете попробовать следующий код? 'fs.createReadStream (filePath) .pipe (f public/images/'+ filename) .on (' close ', function() { fs.unlink (filePath, function() { callback (null, '/ images /' + filename); }); }); 'использовать это как контроллер в конечной точке загрузки. –