分析と広告のためのCookie
分析と広告のためにCookieを使っており、どちらもGoogleに送られます。拒否しても、目に見える動作は何も変わりません。プライバシーポリシーを読む
ここで XZ を GZ に変換できます。無料、アカウント不要です。ファイルを上の枠に落とせば、数秒で結果がダウンロードできる状態になります。 ファイルは暗号化されて当方のサーバーへ送られ、そこで変換され、処理が終わり次第削除されます。
一度に100ファイルまで。フォーマットが混ざっていても構いません。
順番に変換し、まとめてZIPでダウンロードします。
XZ から GZ
ここに来る人の多くはそのファイルを自分で作ったわけではありません。上流のプロジェクトが公開した .tar.xz を、社内のミラー、共有ドライブ、扱えない相手向けのダウンロードリンクとして配り直す必要があります。上流は技術的な読者向けに帯域を最適化しましたが、あなたはリンクを押す相手のために最適化する立場です。
ランタイムの制約であることもあります。Python や Go で書かれたデータ読み込み処理は gzip なら標準ライブラリで開けますが、他の形式には依存関係やシステムパッケージが必要で、サーバーレス関数や堅牢化されたコンテナイメージにはそれがないことがあります。
gzip の優位は技術ではなく歴史です。DEFLATE は 1996 年に RFC 1951 として、gzip の容器は同じ月に RFC 1952 として公開され、同じアルゴリズムが PNG、ZIP、HTTP の転送符号化、Git の内部にまで入っています。gzip の読み取り機能を持つことは、多くのプラットフォームにとって無料に近いのです。
XZ は 2009 年に登場し、そうした乗り物を持たずスタートしました。Linux では自然に入りますが、それ以外の環境では誰かが導入を決める必要があります。未知の環境にファイルを渡すとき、この違いが本題そのものです。
gzip の DEFLATE は 32 KB の窓しか遡れませんが、XZ の LZMA2 は最大 64 MB の辞書を持てます。1 メガバイト目を圧縮しているとき、gzip は 96.8 万バイト前にしか遡れませんが、XZ はアーカイブの先頭まで見えます。
似たファイルが多数含まれるアーカイブでは差が明確に出ます。ライセンスヘッダーを共有する 200 個のソースファイル、同じ数十のテンプレートを使う 1 年分のログでは、XZ が 1 度学んだパターンを gzip は何度も学び直します。すでに JPEG や MP4 で圧縮済みのアーカイブでは、この変換のコストはほとんどありません。
gzip は固定 32 KB の窓で先頭から末尾へ復号でき、索引を持ちません。これが最も実用的な性質を生みます。`curl … | tar xzf -` はディスクに落とさずダウンロードを展開でき、ログの転送ツールはどれだけのデータが来るか知らないまま圧縮できます。
XZ もストリーミングできますが、必要なメモリーは固定ではなく辞書の大きさに比例します。組み込み機器やメモリー上限の厳しいコンテナが相手なら、gzip のストリームは受け取れても XZ のストリームは受け取れないことがあります。
この変換はアーカイブを展開し、中身から新しい TAR を作ってから圧縮します。中の各ファイルはバイト単位で同一ですが、tarball 自体は新しいものなので、上流が公開したチェックサムでは検証できません。
ミラーとして配るなら、実際に配っているファイルの独自のハッシュを公開し、正規のアーカイブと署名は上流にあると明記してください。
gzip のストリームは元のファイル名を持てるフィールドを持ちますが、xz のストリームにはそれがありません。`gunzip dataset.gz` は `dataset.tar` を返せますが、`unxz dataset.xz` はアーカイブだと分かる名前を残しません。
とはいえ保証ではなく気配りにすぎません。公開する前に `.tar.gz` という拡張子を付けておくのが確実です。
制約が純粋にメモリーであれば bzip2 も検討する価値があります。最大 900 KB の独立したブロック単位で動くので展開にほとんど何も要りません。ただし復元は計算量が大きく、遅いデバイスでは時間がかかります。
何を回避しているかで選んでください。メモリー確保に失敗したなら bzip2、形式そのものが認識されなかったり相手が人間であるなら gzip です。
あなたのブラウザーではなくこちらのサーバー上で処理されます。7-Zip、xz、gzip という実際のプログラムが必要だからです。ファイルは暗号化された通信で送られ、外部のインターネットに出られないコンテナで処理されます。
ジョブごとにメモリー上の作業フォルダーが用意され、終了時に破棄されます。無料枠は 1 ファイルあたり 25 MB で、展開後に 2 GB を超えると宣言するアーカイブは展開前に拒否されます。
ダウンロードページを自分で管理できるなら、変換ではなく追加が最善です。技術的な読者向けに .tar.xz を、それ以外の読者向けに .tar.gz を並べてラベルを付け、選んでもらってください。ストレージのコストと引き換えに、両方の読者に最適な形を渡せます。
どちらか一方しか選べないなら、形式の優劣ではなく相手が誰かで決めてください。不特定多数向けの公開ダウンロードや、監査していないツールが取得する内部の成果物なら gzip です。
| XZ | GZ | |
|---|---|---|
| 正式名称 | XZ アーカイブ | Gzip アーカイブ |
| 拡張子 | .xz | .gz, .tgz |
| メディアタイプ | application/x-xz | application/gzip |
| 圧縮方式 | 可逆 — 何も捨てない | 可逆 — 何も捨てない |
| 最初の公開 | 2009 | 1992 |
| 仕様 | — | RFC 1952 |
| ライセンス | オープン標準 | オープン標準 |
| 現在の位置づけ | 現行 | 現行 |
| ブラウザで開けるか | 対応なし | 対応なし |
| 代わりに検討される形式 | BZ2, 7Z | BZ2, ZIP |
失われるものはありません。XZ も GZ も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。
7-ZipとKekaは XZ と GZ のどちらも読めるので、別のプログラムを開かずに、結果を元のファイルと並べて確かめられます。
GZ が一度に扱う範囲は 32 KB、XZ は 8 MB です。繰り返しがこの幅の中に収まっていて初めて、それを圧縮で畳めます。圧縮率の差はそこから来ます。そしてだからこそ、2 つのうち速いのはこちらです。
GZ は 1992 年から使われています。規定は RFC 1952 です。gzip、7-Zip、Kekaがこの形式を読めます。
GZ は 1992 年、XZ は 2009 年に登場しました。人に渡すならたいてい古いほうが安全で、新しいほうは同じ仕事をより少ないバイト数で片づけます。
はい。この変換には、ブラウザーの中では動かないソフトウェアが必要です。ファイルは暗号化されて当方のサーバーへ送られ、処理が終わり次第削除されます。結果のファイルも 60 分後に削除されます。
はい。25 MB までのファイルなら 1 日 100 回まで無料です。この変換だけは当方が費用を負担するサーバーで動くため、ここに上限があります。それ以外に制限はなく、透かしはどの場合も入りません。
いいえ。GZ は同じ内容を何も捨てずに保持できるので、結果は品質の点で元のファイルと同じです。 ファイルは 1 バイトも変わらずに出てきます。失われるのは、容れ物が中身として持っていたものではなく、中身について持っていたもの——パスワードや、形式によっては元のアクセス権と日時です。
失われるものはありません。XZ も GZ も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。