通信上の止ん事無き事情により、base64でデータが送られてくる事があります。
これをそのまま圧縮するのと、デコードしてから圧縮するのとでは結構なファイル量の違いがでてくる……って話です。
実際のところ
345バイトのこんなデータ
ZmNiYWNma3F5gYqSmqCkpqenpKGdmJONiIN/e3d1c3FxcXFxcnN0dXZ3eXp7fHx9fn5/gIGDhISFhYWFhIOCgYGAgICBgoOEhYeIiYmJiYiGhIF+fHl3dHNyc3N1d3p9gIOGiYuMjY2NjIuKiIeFg4GAfnx7eXl4eHl5enx9fn5/gICAgYGBgYGBgYGBgoKDhISEhISEhIOCgoGAgH9/fn5+fn5/gICAgICAgICAgICAgICAf39/gICBgoOFhoeIiIiIiIeGhYOCgH99fHt6enp6e3x9foCAgoKDg4ODgoKBgH59fHt7e3t8fX5/gIKDhIWFhoaGhoaFhISDgoKBgQ==
そのまんま圧縮
$ cat data.log | gzip -f - > data.gz $ ls -la data.gz -rw-r--r-- 1 shuzo_kino staff 263 4 22 21:55 data.gz
デコードしてから圧縮
$ cat data.log | base64 -d | gzip -9 - > data.gz $ ls -la data.gz -rw-r--r-- 1 shuzo_kino staff 188 4 22 22:02 data.gz