Я пытаюсь загрузить видео с клиента android/IOS на сервер NodeJS. Он отлично работает для небольших видеороликов, но когда я пытаюсь загрузить видео, скажем, более 50 МБ, он выдает ошибка тайм-аута сервера.Ошибка таймаута сервера при загрузке видео с Android/IOS на сервер Node
Одно из возможных решений, на мой взгляд, заключается в увеличении предела таймаута сервера, но это не похоже на правильное решение. Есть ли способ загрузить видео с Android без каких-либо ограничений?
Вот код, который я использую.
exports.create = function(req, res) {
req.setTimeout(0);
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, config.uploads.videoUpload.dest);
},
filename: function (req, file, cb) {
let extArray = file.mimetype.split("/");
let extension = extArray[extArray.length - 1];
cb(null, Date.now()+ '.' +extension);
}
});
var upload = multer({
storage: storage,
limits: config.uploads.videoUpload.limits,
fileFilter: function (req, file, cb)
{
if (file.mimetype !== 'image/jpeg' && file.mimetype !== 'video/mp4')
{
return res.status(400).send({
message: 'Only video files are allowed!',
error: true
});
}
cb(null, true);
}
}).single('video_file');
if (user)
{
// upload function with a callback
upload(req, res, function(uploadError) {
if (uploadError)
{
return res.status(400).send({
message: 'Error occurred while uploading Video',
error: true
});
}
else
{
return res.status(200).send({
message: 'Video uploaded Successfuly!',
error: false
});
}
});
}
else
{
res.status(400).send({
message: 'User is not signed in',
error: true
});
}
};
Проверьте, если это http://stackoverflow.com/questions/25332561/node-js-express-large-body-for-bodyparser помогает. –