Я загружаю файл gzip для ежедневного экспорта из базы данных фильмов и распаковываю его с помощью zlib. Когда происходит событие end
, я регистрирую длину строки данных, которые я распаковал. Длина каждый раз разная.
Похоже, что данные не полностью распаковываются. Я заметил это, когда начал анализировать JSON, который на самом деле содержит файл. Он будет на полпути к преобразованию каждой строки JSON (каждая строка представляет собой автономный объект json) и взорвется, потому что json будет искажен.
var http = require('http');
var zlib = require('zlib');
var downloadUrl = "http://files.tmdb.org/p/exports/movie_ids_03_01_2018.json.gz";
http.get(downloadUrl, function(response) {
var fileContents = "";
var gunzip = zlib.createGunzip();
gunzip.on('data', function(data) {
fileContents += data.toString();
});
gunzip.on('end', function() {
console.log(fileContents.length);
});
response.pipe(gunzip);
});
Я неправильно использую события gunzip?
У меня есть воспроизводимый пример, который вы можете выполнить, чтобы увидеть, как он работает.