使いどころ
アップロード上限のテスト、帯域やタイムアウトの検証、ダウンロード処理の動作確認など、「ちょうどこの容量のファイルが欲しい」という場面のためのダミーファイルです。実際に開ける画像に、形式ごとの「無視される領域」を足してちょうどの容量にしています。ビューアやブラウザで普通に表示できます。
1 MB という容量の目安
メール添付でも軽い部類です。フォームの画像アップロード上限としてよく設定される値でもあります。
上限 1MB のバリデーションが「ちょうど 1MB」を通すのか弾くのかは実装で割れます。1 バイト単位で確かめたいときは境界値のファイルが向きます。
nginx の client_max_body_size は既定が 1MB です。設定を変えていないリバースプロキシの後ろにアプリを置くと、ちょうどこの辺りから 413 Request Entity Too Large が返り始めます。
| 10Mbps(モバイル回線の目安) | 1 秒未満 |
|---|---|
| 100Mbps(一般的な光回線) | 1 秒未満 |
| 1Gbps(上限まで出た場合) | 1 秒未満 |
回線を専有できたと仮定した理論値(バイト×8÷速度)です。実測ではないので、実際はこれより遅くなります。
PNG という形式の特徴
可逆圧縮なので、開いて保存し直しても画質が落ちません。透過(アルファチャンネル)を扱えます。スクリーンショット・ロゴ・線画に向き、写真では JPG より大きくなりがちです。
どうやって「ちょうど」にしているか
IEND の直前に私設の補助チャンクを差し込んで容量を合わせています。PNG の仕様では知らない補助チャンクは読み飛ばすと決まっているので、画像としては普通に表示されます。
同じ 1 MB を別の形式で試すなら: PDF / JPG / GIF / WEBP / MP4 / WEBM / ZIP / CSV / JSON / TXT。
容量は 1KB = 1024バイトで計算しています。1 MB = ちょうど 1,048,576 バイトです。上のハッシュは事前計算した固定値で、 ダウンロードした実ファイルと一致します(ハッシュ検証のテストにも使えます)。