長時間ログを撮りたくなったので覚え書き。createGzip
でGzip
ストリームを作成し、write
メソッドでデータを書きこむ。ストリームを閉じないとファイルが破損したと言われてしまうので注意する。
import { createWriteStream } from 'fs';
import { createGzip } from 'zlib';
const compression = createGzip();
const destination = createWriteStream( 'test.gz' );
compression.pipe( destination );
compression.write( 'Hello world!', 'utf8' );
compression.end();
compression.on( 'end', () => console.log( 'end' ) );
解凍するときは createGunzip
でGunzip
ストリームを作成する。
import { createReadStream } from 'fs';
import { createGunzip } from 'zlib';
const decompression = createGunzip();
const source = createReadStream( 'test.gz' );
source.pipe( decompression );
decompression.on( 'data', ( data ) => console.log( data.toString() ) );