Backend, Javascript

Node.jsでgzip圧縮

長時間ログを撮りたくなったので覚え書き。createGzipGzipストリームを作成し、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' ) );

解凍するときは createGunzipGunzipストリームを作成する。

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() ) );

コメントを残す