テストファイル

5 MB のJPG画像

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

ダウンロードsample-5mb.jpg / 5 MB
ファイル名sample-5mb.jpg
容量5,242,880 バイト(5 MB
MIMEimage/jpeg
MD508725c71d2a063c12a15ddb8b2cf7104
SHA-2561a44f2206e520d8743fc1e2dc2e33e0f9ba6118b185b0dbb3b747ba393139664

コマンドで取得

curl
curl -o sample-5mb.jpg https://naqto.com/api/dl/image/jpg/5mb/
wget
wget -O sample-5mb.jpg https://naqto.com/api/dl/image/jpg/5mb/
PowerShell
Invoke-WebRequest https://naqto.com/api/dl/image/jpg/5mb/ -OutFile sample-5mb.jpg

使いどころ

アップロード上限のテスト、帯域やタイムアウトの検証、ダウンロード処理の動作確認など、「ちょうどこの容量のファイルが欲しい」という場面のためのダミーファイルです。実際に開ける画像に、形式ごとの「無視される領域」を足してちょうどの容量にしています。ビューアやブラウザで普通に表示できます。

5 MB という容量の目安

スマートフォンで撮った写真をそのままアップロードすると、だいたいこのくらいになります。

ファイル全体をメモリに載せる実装の限界を探り始める領域です。同時アップロードを重ねたときのメモリ使用量も見ておきたいところ。

PHP の既定は upload_max_filesize が 2MB、post_max_size が 8MB です。5MB のファイルは前者だけを超えるので、「設定を 1 つ直したのにまだ通らない」という事故が起きやすい容量です。

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

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

JPG という形式の特徴

非可逆圧縮で、写真をいちばん小さくできます。透過は扱えません。保存を繰り返すたびに少しずつ劣化していきます。

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

SOI(FFD8)の直後に COM セグメント(コメント)を差し込んで容量を合わせています。COM は描画に影響しません。

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

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