この記事は、株式会社ACCESS Advent Calendar 2017の10日目の記事です。
内容的には3日目の記事の続きです。
あらまし
S3に割と大きなファイルをアップロードする必要がある。
幸いに圧縮が効くものだったので、gzip圧縮でダウンロードできるようにS3を設定する。
この記事の一部を書き換える方法で説明する。
ローカルファイルの圧縮
以下のようにすることで、圧縮がかかるようになります。
s3.putObject({
Bucket: 'バケット名',
Key: '/path/to/file',
- Body: fs.readFileSync('/path/to/localFile')
+ Body: zlib.gzipSync(fs.readFileSync('/path/to/localFile'))
+ ContentEncoding = 'gzip';
}, (err, data) => {
if (err) {
console.error(err);
return;
}
console.log(data);
});
読み込み時にzlib.gzipSync()
で圧縮して、ダウンロード時にcontent-encoding: gzip
でgzip圧縮されていることをHTTPクライアントに教えるイメージです。
明日は @akegashi です。お楽しみに!