Сохранение видеофайла, полученного из многочастной формы, в автономном режиме в автономном режиме

У меня есть веб-сайт под управлением Angular4 с простой формой для загрузки данных с использованием ng2-file-upload. Я отправляю эти файлы на серверный автономный автономный сервер на базе Node.js, где я намерен просто записать эти файлы, полученные из формы, на диск.

Я пытался делать это разными способами, и в конце концов я нашел это прямо здесь, которое анализирует эту форму из события в json. Результирующий json содержит буфер в одном из полей с видеоданными, например:

{ Host: 'localhost:3000',
  'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0',
  Accept: '*/*',
  'Accept-Language': 'en-US,en;q=0.5',
  'Accept-Encoding': 'gzip, deflate',
  Referer: 'http://localhost:4200/myupload',
  'Content-Length': 2391623,
  'Content-Type': 'multipart/form-data; boundary=---------------------------2125290100942661667805976894',
  Origin: 'http://localhost:4200',
  Connection: 'keep-alive' }
{ file:
   { type: 'file',
     filename: 'y9K18CGEeiI.webm',
     contentType: 'video/webm',
     content: <Buffer 1a 45 e3 01 00 00 00 00 00 00 1f 42 fd fd 01 42 fd fd 01 42 fd 04 42 fd 08 42 fd fd 77 65 62 6d 42 fd fd 02 42 fd fd 02 18 53 fd 67 01 00 00 00 00 14 ... > } }

Теперь я пытаюсь сохранить файл в буфере с помощью fs:

module.exports.handler = (event, context, callback) => {
    let data = multipart.parse(event, false);

    fs.writeFile('meme.webm', data.file.content, 'binary', function(err) {
        if(err) { 
          console.log(err);
        } else {  
          console.log('saved!');
        }
    }); 

    // etc ...
};

Файл сохраняется на диск с правильным размером (1,3 МБ), так же, как и исходный файл. К сожалению, я не могу открыть его с другой стороны, и я предполагаю, что это либо из-за кодирования, либо из-за того, как я записываю его на диск. Есть идеи?

1 ответ

Для тех, кто с этой проблемой, проверьте эту проблему прямо здесь. Это проблема с автономным преобразованием файловых данных в автономном режиме, и мало что можно сделать, кроме применения форка.

Другие вопросы по тегам