Я создаю заархивированный файл с потоками 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
константа ; но я не уверен, как справиться с этой ошибкой при потоковой передаче.