노드에서 파일 업로드를 처리하기 위해 multer 및 formidable 두 개의 다른 라이브러리를 사용해 보았습니다. 둘 다 업로드 중에 100 % CPU를 사용합니다.NodeJS 업로드 파일 100 % cpu 사용량
일반적인 노드 문제입니까? 그리고 높은 동시성 환경에서 사람들이 그것을 어떻게 다루는가?
노드 버전 : v0.10.36
가공 할 예
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 예 (심지어 v0.11.x 또는 v0.10.33 같은 다른 버전을 시도했습니다)
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와 관련이 있습니까? –
내 문제는 메모리 사용량이 아닌 CPU와 관련되어 있으므로 관련이 있다고 생각하지 않습니다. 어쨌든 두 코드 스 니펫을 추가했습니다 –
다음 코드를 사용해 볼 수 있습니까? fs.createReadStream (filePath) .pipe (fs.createWriteStream ('public/images /'+ filename)) .on ('close', function() { fs.unlink (filePath, function() { 콜백 (null, '/ images /'+ filename); }); }); 업로드 끝점에서 컨트롤러로 사용하십시오. –