テストファイル

1 MB のPDFファイル

ちょうど 1,048,576 バイトapplication/pdf を、その場で生成して配ります。 内容は決定論的なので、いつダウンロードしても同じ中身・同じハッシュです。

ダウンロードsample-1mb.pdf / 1 MB
ファイル名sample-1mb.pdf
容量1,048,576 バイト(1 MB
MIMEapplication/pdf
MD5a7613b1da096bb69e32e965ce19f387c
SHA-256a59d630d9562c2986224d67665e557e168d89e6d9be1d12e7073535f4a5163b2

コマンドで取得

curl
curl -o sample-1mb.pdf https://naqto.com/api/dl/pdf/1mb/
wget
wget -O sample-1mb.pdf https://naqto.com/api/dl/pdf/1mb/
PowerShell
Invoke-WebRequest https://naqto.com/api/dl/pdf/1mb/ -OutFile sample-1mb.pdf

使いどころ

アップロード上限のテスト、帯域やタイムアウトの検証、ダウンロード処理の動作確認など、「ちょうどこの容量のファイルが欲しい」という場面のためのダミーファイルです。1 ページだけの最小構成の PDF に、規格上読み飛ばされる領域を足してちょうどの容量にしています。ビューアで普通に開けます。

1 MB という容量の目安

メール添付でも軽い部類です。フォームの画像アップロード上限としてよく設定される値でもあります。

上限 1MB のバリデーションが「ちょうど 1MB」を通すのか弾くのかは実装で割れます。1 バイト単位で確かめたいときは境界値のファイルが向きます。

nginx の client_max_body_size は既定が 1MB です。設定を変えていないリバースプロキシの後ろにアプリを置くと、ちょうどこの辺りから 413 Request Entity Too Large が返り始めます。

10Mbps(モバイル回線の目安)1 秒未満
100Mbps(一般的な光回線)1 秒未満
1Gbps(上限まで出た場合)1 秒未満

回線を専有できたと仮定した理論値(バイト×8÷速度)です。実測ではないので、実際はこれより遅くなります。

どうやって「ちょうど」にしているか

%%EOF の後ろを注釈で埋めて容量を合わせています。PDF は %%EOF より後ろを読まないので、ビューアの表示には影響しません。

同じ 1 MB を別の形式で試すなら: PNG / JPG / GIF / WEBP / MP4 / WEBM / ZIP / CSV / JSON / TXT

容量は 1KB = 1024バイトで計算しています。1 MB = ちょうど 1,048,576 バイトです。上のハッシュは事前計算した固定値で、 ダウンロードした実ファイルと一致します(ハッシュ検証のテストにも使えます)。