Целью является:
- Создайте поток чтения файла.
- Вставьте его в gzip (
zlib.createGzip()
) Затем направьте поток чтения вывода zlib на:
1) HTTP
response
объект2) и записываемый файловый поток для сохранения сжатых данных.
Теперь я могу снизить до 3.1:
var gzip = zlib.createGzip(),
sourceFileStream = fs.createReadStream(sourceFilePath),
targetFileStream = fs.createWriteStream(targetFilePath);
response.setHeader('Content-Encoding', 'gzip');
sourceFileStream.pipe(gzip).pipe(response);
... который работает нормально, но мне также нужно сохранить сжатые данные в файл, чтобы мне не нужно было каждый раз повторно архивировать и иметь возможность напрямую передавать сжатые данные в качестве ответа.
Итак, как мне передать один доступный для чтения поток сразу двум доступным для записи потокам в Node?
Будет ли sourceFileStream.pipe(gzip).pipe(response).pipe(targetFileStream);
работать в Node 0.8.x?