5
Ho un file gzip compresso che vorrei leggere riga per riga.Leggi gzip stream riga per riga
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');
});
Credo che ho bisogno di impostare un chunksize per zlib.createGunzip
che ho letto solo fino al successivo \n
. Ma come determinarlo in modo dinamico?
Che dire se voglio ruscello decompresso formare un'altra funzione invece di decomprimere file locale? Ottengo alcuni errori strani provenienti dal file readline.js. – Tomas
@Tomas vuoi dire che vuoi elaborare un flusso "normale" (non uno gzip)? Puoi usare qualsiasi flusso leggibile come argomento per 'input'. – robertklep
Sto provando a utilizzare un flusso proveniente da zlib.gunzip(). il mio flusso di lavoro è: ricevo il file da aws s3, lo decomprimo usando gunzip, poi passo lo stream a readline ma mi sta mandando degli errori, potrebbe essere che il flusso sia incoerente o qualcosa del genere? – Tomas