Modul zlib
zlib ist ein integriertes Komprimierungsmodul, das mehrere Komprimierungsformate und -modi wie gzip, deflate und zlib unterstützt.
zlib besteht hauptsächlich aus den folgenden drei Funktionen:
- deflate: komprimierte Daten;
- aufblasen: Daten dekomprimieren;
- gzip: gzip-Komprimierungsformat.
Bevor Sie zlib verwenden, müssen Sie eine davon entsprechend dem Komprimierungsalgorithmus auswählen, den Sie verwenden müssen. Sie können auf die Konstanten von zlib zurückgreifen, um den entsprechenden Komprimierungsalgorithmus auszuwählen. Zum Beispiel verwenden wir den Deflate-Komprimierungsalgorithmus für die Modulbeschreibung:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15const zlib = require('zlib');
const {
NO_COMPRESSION,
BEST_SPEED,
BEST_COMPRESSION,
DEFAULT_COMPRESSION
} = require('zlib');
// compress data
const deflated = zlib.deflate('hello, world', BEST_SPEED);
console.log(deflated.toString());
// decompress data
const inflated = zlib.inflate(deflated);
console.log(inflated.toString());
Der obige Code zeigt, wie Daten komprimiert und dekomprimiert werden. Verwenden Sie zuerst die Methode, um die Zeichenfolge zlib.deflate
zu komprimieren , und übergeben Sie sie als Option für die Komprimierungsstufe. Anschließend dekomprimieren Sie die Daten mit der Methode. Das Ausgabeergebnis sollte mit der ursprünglichen Zeichenfolge identisch sein .hello, world
BEST_SPEED
zlib.inflate
zlib.deflate
und zlib.inflate
beide unterstützen die Definition der Komprimierungsstufe. Die Komprimierungsstufe ist eine Zahl mit einem Wertebereich von [NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]
. Der Standardwert ist DEFAULT_COMPRESSION
. Die Bedeutung dieser vier Komprimierungsstufen können Sie der folgenden Tabelle entnehmen:
Komprimierungsstufe | Bedeutung |
---|---|
zlib.NO_COMPRESSION | Unkomprimierte Daten (mit Unterstützung für die Vervollständigung des Komprimierungsheaders) |
zlib.BEST_SPEED | Die schnellste Komprimierungsgeschwindigkeit; das Komprimierungsverhältnis ist jedoch entsprechend schlechter. |
zlib.DEFAULT_COMPRESSION | Gemäß dem Standardwert des Komprimierungsalgorithmus ist er normalerweise langsamer als BEST_SPEED, weist jedoch eine höhere Komprimierungsrate auf. |
zlib.BEST_COMPRESSION | Höchste Komprimierungsrate, aber entsprechend langsamere Komprimierungsgeschwindigkeit. |
Bei der Verwendung des Moduls ist zlib
zu beachten, dass, wenn Sie Daten gleichzeitig komprimieren und dekomprimieren möchten, empfohlen wird, es deflate
zuerst zum Komprimieren der Daten und dann inflate
zum Dekomprimieren der Daten zu verwenden, um Fehler zu vermeiden. Für verschiedene Komprimierungsformate und -algorithmen gibt es andere Klassen und Methoden zur Komprimierung und Dekomprimierung. Zur Verwendung können Sie auf die folgenden Dokumente verweisen.
statische Funktion
createDeflate
Erstellen Sie ein Deflate-Stream-Objekt
1static Stream zlib.createDeflate(Stream to);
Aufrufparameter:
- to:Stream, ein Stream, der zum Speichern von Verarbeitungsergebnissen verwendet wird
Rückgabeergebnisse:
- Stream, gibt das gekapselte Stream-Objekt zurück
createDeflateRaw
Erstellen Sie ein deflateRaw-Stream-Objekt
1static Stream zlib.createDeflateRaw(Stream to);
Aufrufparameter:
- to:Stream, ein Stream, der zum Speichern von Verarbeitungsergebnissen verwendet wird
Rückgabeergebnisse:
- Stream, gibt das gekapselte Stream-Objekt zurück
createGunzip
Erstellen Sie ein Gunzip-Stream-Objekt
1
2static Stream zlib.createGunzip(Stream to,
Integer maxSize = -1);
Aufrufparameter:
- to:Stream, ein Stream, der zum Speichern von Verarbeitungsergebnissen verwendet wird
- maxSize: Ganzzahl, gibt die Dekomprimierungsgrößenbeschränkung an, der Standardwert ist -1, keine Begrenzung
Rückgabeergebnisse:
- Stream, gibt das gekapselte Stream-Objekt zurück
createGzip
Erstellen Sie ein gzip-Stream-Objekt
1static Stream zlib.createGzip(Stream to);
Aufrufparameter:
- to:Stream, ein Stream, der zum Speichern von Verarbeitungsergebnissen verwendet wird
Rückgabeergebnisse:
- Stream, gibt das gekapselte Stream-Objekt zurück
createInflate
Erstellen Sie ein Inflate-Stream-Objekt
1
2static Stream zlib.createInflate(Stream to,
Integer maxSize = -1);
Aufrufparameter:
- to:Stream, ein Stream, der zum Speichern von Verarbeitungsergebnissen verwendet wird
- maxSize: Ganzzahl, gibt die Dekomprimierungsgrößenbeschränkung an, der Standardwert ist -1, keine Begrenzung
Rückgabeergebnisse:
- Stream, gibt das gekapselte Stream-Objekt zurück
createInflateRaw
Erstellen Sie ein inflateRaw-Stream-Objekt
1
2static Stream zlib.createInflateRaw(Stream to,
Integer maxSize = -1);
Aufrufparameter:
- to:Stream, ein Stream, der zum Speichern von Verarbeitungsergebnissen verwendet wird
- maxSize: Ganzzahl, gibt die Dekomprimierungsgrößenbeschränkung an, der Standardwert ist -1, keine Begrenzung
Rückgabeergebnisse:
- Stream, gibt das gekapselte Stream-Objekt zurück
deflate
Verwenden Sie den Deflate-Algorithmus, um Daten zu komprimieren (zlib-Format).
1
2static Buffer zlib.deflate(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
Aufrufparameter:
- data:Buffer, angesichts der zu komprimierenden Daten
- level: Ganzzahl, gibt die Komprimierungsstufe an, der Standardwert ist DEFAULT_COMPRESSION
Rückgabeergebnisse:
- Buffer, gibt komprimierte Binärdaten zurück
deflateTo
Verwenden Sie den Deflate-Algorithmus, um Daten in Stream-Objekte zu komprimieren (zlib-Format).
1
2
3static zlib.deflateTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Aufrufparameter:
- data:Buffer, angesichts der zu komprimierenden Daten
- stm:Stream, gibt den Stream zum Speichern komprimierter Daten an
- level: Ganzzahl, gibt die Komprimierungsstufe an, der Standardwert ist DEFAULT_COMPRESSION
Verwenden Sie den Deflate-Algorithmus, um Daten im Quellstream in ein Stream-Objekt (zlib-Format) zu komprimieren.
1
2
3static zlib.deflateTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Aufrufparameter:
- src:Stream, angesichts des Streams, in dem sich die zu komprimierenden Daten befinden
- stm:Stream, gibt den Stream zum Speichern komprimierter Daten an
- level: Ganzzahl, gibt die Komprimierungsstufe an, der Standardwert ist DEFAULT_COMPRESSION
inflate
Dekomprimieren Sie durch den Deflate-Algorithmus komprimierte Daten (zlib-Format).
1
2static Buffer zlib.inflate(Buffer data,
Integer maxSize = -1) async;
Aufrufparameter:
- data:Buffer, angesichts der komprimierten Daten
- maxSize: Ganzzahl, gibt die Dekomprimierungsgrößenbeschränkung an, der Standardwert ist -1, keine Begrenzung
Rückgabeergebnisse:
- Buffer, gibt die dekomprimierten Binärdaten zurück
inflateTo
Dekomprimieren Sie vom Deflate-Algorithmus komprimierte Daten in ein Stream-Objekt (zlib-Format).
1
2
3static zlib.inflateTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
Aufrufparameter:
- data:Buffer, angesichts der zu dekomprimierenden Daten
- stm:StreamGeben Sie den Stream zum Speichern dekomprimierter Daten an
- maxSize: Ganzzahl, gibt die Dekomprimierungsgrößenbeschränkung an, der Standardwert ist -1, keine Begrenzung
Dekomprimieren Sie die vom Deflate-Algorithmus komprimierten Daten im Quellstream in ein Stream-Objekt (zlib-Format).
1
2
3static zlib.inflateTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
Aufrufparameter:
- src:Stream, angesichts des Streams, in dem sich die zu dekomprimierenden Daten befinden
- stm:StreamGeben Sie den Stream zum Speichern dekomprimierter Daten an
- maxSize: Ganzzahl, gibt die Dekomprimierungsgrößenbeschränkung an, der Standardwert ist -1, keine Begrenzung
gzip
Komprimieren Sie Daten mit dem GZIP-Algorithmus
1static Buffer zlib.gzip(Buffer data) async;
Aufrufparameter:
- data:Buffer, angesichts der zu komprimierenden Daten
Rückgabeergebnisse:
- Buffer, gibt komprimierte Binärdaten zurück
gzipTo
Verwenden Sie den gzip-Algorithmus, um Daten in ein Stream-Objekt zu komprimieren
1
2static zlib.gzipTo(Buffer data,
Stream stm) async;
Aufrufparameter:
- data:Buffer, angesichts der zu komprimierenden Daten
- stm:Stream, gibt den Stream zum Speichern komprimierter Daten an
Verwenden Sie den gzip-Algorithmus, um die Daten im Quellstream in ein Stream-Objekt zu komprimieren.
1
2static zlib.gzipTo(Stream src,
Stream stm) async;
Aufrufparameter:
- src:Stream, angesichts des Streams, in dem sich die zu komprimierenden Daten befinden
- stm:Stream, gibt den Stream zum Speichern komprimierter Daten an
gunzip
Dekomprimieren Sie die vom gzip-Algorithmus komprimierten Daten
1
2static Buffer zlib.gunzip(Buffer data,
Integer maxSize = -1) async;
Aufrufparameter:
- data:Buffer, angesichts der komprimierten Daten
- maxSize: Ganzzahl, gibt die Dekomprimierungsgrößenbeschränkung an, der Standardwert ist -1, keine Begrenzung
Rückgabeergebnisse:
- Buffer, gibt die dekomprimierten Binärdaten zurück
gunzipTo
Dekomprimieren Sie mit dem GZIP-Algorithmus komprimierte Daten in ein Stream-Objekt
1
2
3static zlib.gunzipTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
Aufrufparameter:
- data:Buffer, angesichts der zu dekomprimierenden Daten
- stm:StreamGeben Sie den Stream zum Speichern dekomprimierter Daten an
- maxSize: Ganzzahl, gibt die Dekomprimierungsgrößenbeschränkung an, der Standardwert ist -1, keine Begrenzung
Dekomprimieren Sie die mit dem GZIP-Algorithmus komprimierten Daten im Quellstream in ein Stream-Objekt
1
2
3static zlib.gunzipTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
Aufrufparameter:
- src:Stream, angesichts des Streams, in dem sich die zu dekomprimierenden Daten befinden
- stm:StreamGeben Sie den Stream zum Speichern dekomprimierter Daten an
- maxSize: Ganzzahl, gibt die Dekomprimierungsgrößenbeschränkung an, der Standardwert ist -1, keine Begrenzung
deflateRaw
Komprimieren Sie Daten mit dem Deflate-Algorithmus (deflateRaw).
1
2static Buffer zlib.deflateRaw(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
Aufrufparameter:
- data:Buffer, angesichts der zu komprimierenden Daten
- level: Ganzzahl, gibt die Komprimierungsstufe an, der Standardwert ist DEFAULT_COMPRESSION
Rückgabeergebnisse:
- Buffer, gibt komprimierte Binärdaten zurück
deflateRawTo
Verwenden Sie den Deflate-Algorithmus, um Daten in Stream-Objekte zu komprimieren (deflateRaw).
1
2
3static zlib.deflateRawTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Aufrufparameter:
- data:Buffer, angesichts der zu komprimierenden Daten
- stm:Stream, gibt den Stream zum Speichern komprimierter Daten an
- level: Ganzzahl, gibt die Komprimierungsstufe an, der Standardwert ist DEFAULT_COMPRESSION
Verwenden Sie den Deflate-Algorithmus, um Daten im Quellstream in ein Stream-Objekt zu komprimieren (deflateRaw).
1
2
3static zlib.deflateRawTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Aufrufparameter:
- src:Stream, angesichts des Streams, in dem sich die zu komprimierenden Daten befinden
- stm:Stream, gibt den Stream zum Speichern komprimierter Daten an
- level: Ganzzahl, gibt die Komprimierungsstufe an, der Standardwert ist DEFAULT_COMPRESSION
inflateRaw
Dekomprimieren Sie durch den Deflate-Algorithmus komprimierte Daten (inflateRaw).
1
2static Buffer zlib.inflateRaw(Buffer data,
Integer maxSize = -1) async;
Aufrufparameter:
- data:Buffer, angesichts der komprimierten Daten
- maxSize: Ganzzahl, gibt die Dekomprimierungsgrößenbeschränkung an, der Standardwert ist -1, keine Begrenzung
Rückgabeergebnisse:
- Buffer, gibt die dekomprimierten Binärdaten zurück
inflateRawTo
Dekomprimieren Sie vom Deflate-Algorithmus komprimierte Daten in ein Stream-Objekt (inflateRaw).
1
2
3static zlib.inflateRawTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
Aufrufparameter:
- data:Buffer, angesichts der zu dekomprimierenden Daten
- stm:StreamGeben Sie den Stream zum Speichern dekomprimierter Daten an
- maxSize: Ganzzahl, gibt die Dekomprimierungsgrößenbeschränkung an, der Standardwert ist -1, keine Begrenzung
Dekomprimieren Sie durch den Deflate-Algorithmus komprimierte Daten im Quellstream in ein Stream-Objekt (inflateRaw).
1
2
3static zlib.inflateRawTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
Aufrufparameter:
- src:Stream, angesichts des Streams, in dem sich die zu dekomprimierenden Daten befinden
- stm:StreamGeben Sie den Stream zum Speichern dekomprimierter Daten an
- maxSize: Ganzzahl, gibt die Dekomprimierungsgrößenbeschränkung an, der Standardwert ist -1, keine Begrenzung
Konstante
NO_COMPRESSION
Kompressionsstufe verringern, keine Kompression einstellen
1const zlib.NO_COMPRESSION = 0;
BEST_SPEED
Komprimierungsstufe verringern, schnellste Komprimierung einstellen
1const zlib.BEST_SPEED = 1;
BEST_COMPRESSION
Kompressionsstufe verringern, höchste Kompression einstellen
1const zlib.BEST_COMPRESSION = 9;
DEFAULT_COMPRESSION
Komprimierungsstufe verringern, Standardeinstellungen festlegen
1const zlib.DEFAULT_COMPRESSION = -1;