背景
Webサービスを運用する上で、サイトスピード向上を図るために画像の最適化をすることになりました。
今回はAWS上で管理する画像も含めて圧縮し直す方法も備忘録として残しておきます。
クラウドからダウンロード
まずは特定のS3上の特定のディレクトリからローカルに画像をダウンロード。
$ aws s3 cp /hoge/foo/image /local/image --recursive
cpの第一引数にS3上の管理ディレクトリ、第二引数にローカルディレクトリを指定します。
また、オプションで付けている --recursive
はディレクトリを再帰的に読み込む役割をしてくれます。
このオプションがないとファイル指定でのダウンロードしか行えなくなるので注意です。
画像圧縮
基本的にGUIには頼りたくないのでコマンド入力で進めていきます。
画像の拡張子によって用いるツールが異なります。
JPG,JPEGの場合
jpegoptimで最適化
例:ファイルを指定
$ jpegoptim ファイル名 オプション名
例:ディレクトリ内全てのjpeg画像に対して
$ find . -name *.jpeg | xargs jpegoptim --max=90 —recursive
pngの場合
pngquantで最適化
例:ファイル名を変えずに上書きかつ圧縮率を指定
$ pngquant -f --ext .png --quality=60 hoge/*.png
クラウドに再アップロード
引数の順番を変えてあげるだけでおk
$ aws s3 cp /local/image /hoge/foo/image --recursive
まとめ
画像の最適化を行うと60-70%ほど画像の圧縮が図れます。
google speed insightsなどサイトスピードの評価が著しく悪かった場合は画像圧縮も検討してみてください。
https://developers.google.com/speed/pagespeed/insights/?hl=ja