모듈 zlib
zlib는 gzip, deflate 및 zlib와 같은 다양한 압축 형식과 모드를 지원하는 내장 압축 모듈입니다.
zlib는 주로 다음 세 가지 기능으로 구성됩니다.
- deflate: 압축된 데이터;
- inflate: 데이터 압축을 푼다.
- gzip: gzip 압축 형식입니다.
zlib을 사용하기 전에 사용해야 하는 압축 알고리즘에 따라 둘 중 하나를 선택해야 합니다. 해당 압축 알고리즘을 선택하려면 zlib의 상수를 참조할 수 있습니다. 예를 들어, 모듈 설명을 위해 deflate 압축 알고리즘을 사용합니다.
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());
위의 코드는 데이터를 압축하고 푸는 방법을 보여주며, 먼저 문자열을 zlib.deflate압축하는 방법을 사용하고, 압축 수준 옵션으로 전달한 후, 데이터의 압축을 푸는 방법을 사용합니다. 출력 결과는 원본 문자열과 동일해야 합니다. .hello, worldBEST_SPEEDzlib.inflate
zlib.deflate둘 zlib.inflate다 압축 수준 정의를 지원합니다. 압축 수준은 값 범위의 숫자입니다 [NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]. 기본값은 입니다 DEFAULT_COMPRESSION. 이 네 가지 압축 수준의 의미는 다음 표를 참조하세요.
| 압축 수준 | 의미 |
|---|---|
| zlib.NO_COMPRESSION | 압축되지 않은 데이터(압축 헤더 완성 지원) |
| zlib.BEST_SPEED | 압축 속도는 가장 빠르지만 이에 따라 압축률이 더 나빠집니다. |
| zlib.DEFAULT_COMPRESSION | 압축 알고리즘의 기본값에 따르면 일반적으로 BEST_SPEED보다 느리지만 압축률은 더 높습니다. |
| zlib.BEST_COMPRESSION | 압축률은 가장 높지만 그에 따라 압축 속도도 느려집니다. |
모듈을 사용할 zlib때 주의해야 할 점 은 데이터를 압축하고 압축을 동시에 풀려면 모듈을 사용하여 deflate먼저 데이터를 압축한 다음 inflate데이터를 압축 해제하는 데 사용하여 오류를 방지하는 것이 좋습니다. 다양한 압축 형식과 알고리즘의 경우 압축 및 압축 해제를 위한 다른 클래스와 메서드가 있으며, 다음 문서를 참조하여 사용할 수 있습니다.
정적 함수
createDeflate
수축 스트림 객체 생성
1static Stream zlib.createDeflate(Stream to);
호출 매개변수:
- to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
결과 반환:
- Stream, 캡슐화된 스트림 객체를 반환합니다.
createDeflateRaw
deflateRaw 스트림 객체 생성
1static Stream zlib.createDeflateRaw(Stream to);
호출 매개변수:
- to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
결과 반환:
- Stream, 캡슐화된 스트림 객체를 반환합니다.
createGunzip
gunzip 스트림 객체 생성
1
2static Stream zlib.createGunzip(Stream to,
Integer maxSize = -1);
호출 매개변수:
- to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
결과 반환:
- Stream, 캡슐화된 스트림 객체를 반환합니다.
createGzip
gzip 스트림 객체 생성
1static Stream zlib.createGzip(Stream to);
호출 매개변수:
- to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
결과 반환:
- Stream, 캡슐화된 스트림 객체를 반환합니다.
createInflate
팽창 스트림 객체 생성
1
2static Stream zlib.createInflate(Stream to,
Integer maxSize = -1);
호출 매개변수:
- to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
결과 반환:
- Stream, 캡슐화된 스트림 객체를 반환합니다.
createInflateRaw
inflateRaw 스트림 객체 생성
1
2static Stream zlib.createInflateRaw(Stream to,
Integer maxSize = -1);
호출 매개변수:
- to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
결과 반환:
- Stream, 캡슐화된 스트림 객체를 반환합니다.
deflate
deflate 알고리즘을 사용하여 데이터 압축(zlib 형식)
1
2static Buffer zlib.deflate(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
호출 매개변수:
- data:Buffer, 압축할 데이터가 주어지면
- level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.
결과 반환:
- Buffer, 압축된 이진 데이터를 반환합니다.
deflateTo
deflate 알고리즘을 사용하여 데이터를 스트림 객체(zlib 형식)로 압축합니다.
1
2
3static zlib.deflateTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
호출 매개변수:
- data:Buffer, 압축할 데이터가 주어지면
- stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.
- level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.
deflate 알고리즘을 사용하여 소스 스트림의 데이터를 스트림 객체(zlib 형식)로 압축합니다.
1
2
3static zlib.deflateTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
호출 매개변수:
- src:Stream, 압축할 데이터가 있는 스트림이 있는 경우
- stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.
- level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.
inflate
deflate 알고리즘(zlib 형식)으로 압축된 데이터 압축 해제
1
2static Buffer zlib.inflate(Buffer data,
Integer maxSize = -1) async;
호출 매개변수:
- data:Buffer, 압축된 데이터가 주어지면
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
결과 반환:
- Buffer, 압축이 풀린 이진 데이터를 반환합니다.
inflateTo
deflate 알고리즘으로 압축된 데이터를 스트림 객체(zlib 형식)로 압축 해제
1
2
3static zlib.inflateTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
호출 매개변수:
- data:Buffer, 압축을 풀 데이터가 주어지면
- stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
소스 스트림에서 deflate 알고리즘으로 압축된 데이터를 스트림 객체(zlib 형식)로 압축 해제
1
2
3static zlib.inflateTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
호출 매개변수:
- src:Stream, 압축을 풀 데이터가 있는 스트림이 있는 경우
- stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
gzip
gzip 알고리즘을 사용하여 데이터 압축
1static Buffer zlib.gzip(Buffer data) async;
호출 매개변수:
- data:Buffer, 압축할 데이터가 주어지면
결과 반환:
- Buffer, 압축된 이진 데이터를 반환합니다.
gzipTo
gzip 알고리즘을 사용하여 데이터를 스트림 객체로 압축
1
2static zlib.gzipTo(Buffer data,
Stream stm) async;
호출 매개변수:
gzip 알고리즘을 사용하여 소스 스트림의 데이터를 스트림 개체로 압축합니다.
1
2static zlib.gzipTo(Stream src,
Stream stm) async;
호출 매개변수:
gunzip
gzip 알고리즘으로 압축된 데이터 압축 해제
1
2static Buffer zlib.gunzip(Buffer data,
Integer maxSize = -1) async;
호출 매개변수:
- data:Buffer, 압축된 데이터가 주어지면
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
결과 반환:
- Buffer, 압축이 풀린 이진 데이터를 반환합니다.
gunzipTo
gzip 알고리즘으로 압축된 데이터를 스트림 객체로 압축 해제
1
2
3static zlib.gunzipTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
호출 매개변수:
- data:Buffer, 압축을 풀 데이터가 주어지면
- stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
소스 스트림의 gzip 알고리즘으로 압축된 데이터를 스트림 객체로 압축 해제
1
2
3static zlib.gunzipTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
호출 매개변수:
- src:Stream, 압축을 풀 데이터가 있는 스트림이 있는 경우
- stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
deflateRaw
deflate 알고리즘(deflateRaw)을 사용하여 데이터 압축
1
2static Buffer zlib.deflateRaw(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
호출 매개변수:
- data:Buffer, 압축할 데이터가 주어지면
- level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.
결과 반환:
- Buffer, 압축된 이진 데이터를 반환합니다.
deflateRawTo
deflate 알고리즘을 사용하여 데이터를 스트림 객체로 압축합니다(deflateRaw).
1
2
3static zlib.deflateRawTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
호출 매개변수:
- data:Buffer, 압축할 데이터가 주어지면
- stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.
- level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.
deflate 알고리즘을 사용하여 소스 스트림의 데이터를 스트림 객체(deflateRaw)로 압축합니다.
1
2
3static zlib.deflateRawTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
호출 매개변수:
- src:Stream, 압축할 데이터가 있는 스트림이 있는 경우
- stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.
- level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.
inflateRaw
deflate 알고리즘(inflateRaw)으로 압축된 데이터 압축 해제
1
2static Buffer zlib.inflateRaw(Buffer data,
Integer maxSize = -1) async;
호출 매개변수:
- data:Buffer, 압축된 데이터가 주어지면
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
결과 반환:
- Buffer, 압축이 풀린 이진 데이터를 반환합니다.
inflateRawTo
deflate 알고리즘으로 압축된 데이터를 스트림 객체(inflateRaw)로 압축 해제
1
2
3static zlib.inflateRawTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
호출 매개변수:
- data:Buffer, 압축을 풀 데이터가 주어지면
- stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
소스 스트림의 deflate 알고리즘으로 압축된 데이터를 스트림 객체(inflateRaw)로 압축 해제
1
2
3static zlib.inflateRawTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
호출 매개변수:
- src:Stream, 압축을 풀 데이터가 있는 스트림이 있는 경우
- stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
- maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.
끊임없는
NO_COMPRESSION
압축 수준을 낮추고 압축하지 않도록 설정
1const zlib.NO_COMPRESSION = 0;
BEST_SPEED
압축 수준을 낮추고 가장 빠른 압축을 설정합니다.
1const zlib.BEST_SPEED = 1;
BEST_COMPRESSION
압축 수준을 낮추고 가장 높은 압축을 설정하십시오.
1const zlib.BEST_COMPRESSION = 9;
DEFAULT_COMPRESSION
압축 수준을 낮추고 기본 설정을 지정합니다.
1const zlib.DEFAULT_COMPRESSION = -1;
