Как загрузить файл в Node/Express с удаленного URL-адреса и временно сохранить его

#node.js #express #ffmpeg

Вопрос:

У меня есть скрипт Node/Express, который использует FFMPEG для получения расширенных метаданных из видеофайла (например, файлов mp4 или mov) — я передаю URL-адрес в функцию процесса, однако это приводит к ошибке «входной файл не существует», поскольку ожидается, что этот удаленный файл будет загружен и прочитан напрямую с того же сервера. Как я могу загрузить файл из req.body.file и временно сохранить его локально, чтобы его можно было прочитать в new ffmpeg(localfile) функции

 const express = require('express'); const router = express.Router(); const ffmpeg = require('ffmpeg');  router.post('/', async function(req, res) {  console.log('Request type: ', req.method); // 'POST'  try {  console.log('url', req.body.file); // e.g https://example.com/video.mp4   var process = new ffmpeg(req.body.file);  process.then(function (video) {  let metadata = formatMetadata(video.metadata);  console.log(metadata);  }, function (err) {  console.log('Error: '   err);  });    } catch (e) {  console.log(e);  }  });  module.exports = router;   

Комментарии:

1. Используйте простой запрос http/https, который возвращает (если вы хотите) поток, передайте этот поток в stdin ffmepg.