テストファイル

50 MB のPNG画像

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

ダウンロードsample-50mb.png / 50 MB
ファイル名sample-50mb.png
容量52,428,800 バイト(50 MB
MIMEimage/png
MD583911bc54af1be26799269f2eb371410
SHA-2560c1ed2be256dff1f1d0843678aa77c07de8ed23cd4e1ee4be4484c12076ca4c3

コマンドで取得

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

使いどころ

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

50 MB という容量の目安

一般的なアップロード上限としては大きい部類で、分割アップロードを検討し始めるサイズです。

サーバー側のリクエストボディ上限(nginx の client_max_body_size など)に当たりやすい領域。413 が返るかどうかを確かめられます。

GitHub は 50MB を超えるファイルをプッシュすると警告を出し、100MB を超えると拒否します。50MB はその警告がちょうど始まる容量です。

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

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

PNG という形式の特徴

可逆圧縮なので、開いて保存し直しても画質が落ちません。透過(アルファチャンネル)を扱えます。スクリーンショット・ロゴ・線画に向き、写真では JPG より大きくなりがちです。

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

IEND の直前に私設の補助チャンクを差し込んで容量を合わせています。PNG の仕様では知らない補助チャンクは読み飛ばすと決まっているので、画像としては普通に表示されます。

同じ 50 MB を別の形式で試すなら: PDF / JPG / GIF / WEBP / MP4 / WEBM / ZIP

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