NodeJS - следит за свободным пространством при потоковой передаче данных в заархивированный файл - PullRequest
0 голосов
/ 17 июня 2020

Я создаю заархивированный файл с потоками NodeJS, используя следующий фрагмент.

  let gzip = zlib.createGzip()

  let wstream = fs.createWriteStream('/some/filename')
  console.log('Writing to /some/filename')
  dataStream // Someone is writing to this stream
    .pipe(someTransform)
    .pipe(gzip)
    .pipe(wstream)
    .on('close', () => { // Someone has done a dataStream.end() and a dataStream.destroy()
      someTransform.unpipe(gzip).unpipe(wstream)
      someTransform.destroy()
      gzip.destroy()
      wstream.destroy()
      console.log('Finished writing to /some/filename')}

Я хотел бы знать, смогу ли я изящно обработать событие нехватки места на диске. Предположим, если /some достиг 95% предела, тогда я хотел бы остановить потоковую передачу в этот момент, чем весь процесс cra sh из-за отсутствия места на устройстве.

Существует ENOSPC константа ; но я не уверен, как справиться с этой ошибкой при потоковой передаче.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...