Jak potraktować jeden czytelny strumień w dwóch strumieniach zapisywalnych jednocześnie w Node.js?
Celem jest:
Utwórz strumień odczytu pliku.Przewiń go do gzipa (zlib.createGzip()
)Następnie potokuj strumień wyjściowy zlib na:
1) HTTPresponse
obiekt
2)i zapisywalny strumień plików, aby zapisać spakowane dane wyjściowe.
Teraz mogę zrobić do 3.1:
var gzip = zlib.createGzip(),
sourceFileStream = fs.createReadStream(sourceFilePath),
targetFileStream = fs.createWriteStream(targetFilePath);
response.setHeader('Content-Encoding', 'gzip');
sourceFileStream.pipe(gzip).pipe(response);
... która działa dobrze, ale muszę teżzapisz spakowane dane do pliku tak, że nie muszę za każdym razem zapisywać ponownie i móc bezpośrednio przesyłać strumieniowo dane gzip jako odpowiedź.
Jak więc potokować jeden czytelny strumień na dwa zapisywalne strumienie jednocześnie w węźle?
BysourceFileStream.pipe(gzip).pipe(response).pipe(targetFileStream);
działa w węźle 0.8.x?