なんだかGoodVibes

日々の勉強メモです。

【Node】ファイルをGzip・Gunzipする(zlib)

こんにちは。
本日は指定したファイルをGzipで圧縮・伸張するサンプルです。

概要

圧縮のサンプルをgzip.js、
伸張のサンプルをgunzip.jsとします。

圧縮する場合は、

node gzip.js 圧縮対象ファイル 圧縮後ファイル

伸張する場合は、

node gunzip.js 対象gzファイル 伸張後ファイル

と実行してください。


圧縮(gzip.js)

Nodeに標準で用意されているzlibを使用しています。

const fs = require('fs');
const zlib = require('zlib');
const input = process.argv[2];
var output = process.argv[3];

if (!output) {
    output = "output";
}

fs.createReadStream(input)
  .pipe(zlib.createGzip())
  .pipe(fs.createWriteStream(`${output}.gz`))
  .on('finish', () => {
      console.log(`完了:${input} → ${output}.gz`);
  });


伸張(gunzip.js)

伸張する場合も、 Nodeに標準で用意されているzlibを使用します。

const fs = require('fs');
const zlib = require('zlib');
const input = process.argv[2];
var output = process.argv[3];

if (!output) {
    output = "output";
}

fs.createReadStream(input)
  .pipe(zlib.createGunzip())
  .pipe(fs.createWriteStream(`${output}`))
  .on('finish', () => {
    console.log(`完了:${input} → ${output}`);
  });



以上です。