5
Mam skompresowany plik gzip, który chciałbym czytać wiersz po wierszu.Przeczytaj linię strumienia gzip po linii
var fs = require('fs')
var zlib = require('zlib')
var gunzip = zlib.createGunzip()
var inp = fs.createReadStream('test.gz')
var n = 0
var lineProcessing = function (err, data) {
if (!err) {
n += 1
console.log ("line: " + n)
console.log (data.toString())
}
}
inp
.on('data', function (chunk) {
zlib.gunzip (chunk, lineProcessing)
})
.on('end', function() {
console.log ('ende');
});
Chyba muszę ustawić chunksize dla zlib.createGunzip
że czytałem tylko do następnego \n
. Ale jak określić to dynamicznie?
A co, jeśli chcę, aby przesyłać strumień rozpakowane tworzą inną funkcję zamiast rozpakować plik lokalny? Dostaję dziwne błędy pochodzące z pliku readline.js .. – Tomas
@Toma masz na myśli, że chcesz przetworzyć "zwykły" strumień (nie gzipowany)? Możesz użyć dowolnego odczytywalnego strumienia jako argumentu dla 'input'. – robertklep
Próbuję użyć strumienia pochodzącego z zlib.gunzip(). mój przepływ pracy jest następujący: otrzymuję plik z aws s3, rozpakowuję go za pomocą programu gunzip, a następnie przekazuję strumień do readline, ale powoduje to błędy, czy może to być niespójny strumień czy coś takiego? – Tomas