ダウンロード時間計算ツール
ファイルの転送にかかる時間が分かります。10 Mbpsの回線で10 MBを送ると、1秒ではなく8秒かかります。速度はビット、ファイルはバイトで数えるためです。十進と二進のどちらの単位にも対応し、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- サイズ
- 10
- サイズの単位
- MB
- 速度
- 10
- 速度の単位
- Mbps
- 秒
- 8
- 時間
- 0
- 分
- 0
- 残りの秒数
- 8
無料オンライン
単位:十進・二進・ビット・バイト
1 秒あたりビットの単位 bps・Kbps・Mbps・Gbps は 8 で割って 1 秒あたりバイト数にし、1 秒あたりバイトの単位 Bps・KBps・MBps・GBps はそのまま使います。だからこそ 10 MB を 10 Mbps の回線で送ると 1 秒ではなく 8 秒になります。10 MB は 80 メガビットだからです。
既定はサイズが MB、速度が Mbps で、家庭向け帯域幅の一般的な表記に合わせています。
秒数から読みやすい所要時間へ
合計を整数の時と分、および小数の secs 値に分割し、桁上がりを正しく処理しますので、secs が 60 に達すると分に繰り上がり、minutes が 60 に達すると時に繰り上がります。時があるときだけ時を表示し(例:1h 5m 3s)、1 時間未満なら分と秒を、短い転送なら秒だけを表示します。
まさに参照例が 10 Mbps での 10 MB を seconds 8、human 8s に変えるとおりです。これにより、以降の計算に使える正確な数値の所要時間と、ロケール固有の書式を使わずに UI やログ行に表示できる簡潔なラベルの両方が得られます。
活用例
転送の見積もり
帯域幅が表記されている単位を使って、バックアップ・ISO・メディアファイルが所定の回線でどれくらいかかるかを、開始前に見積もります。
帯域幅の計画
Mbps の各段階や 1 秒あたりバイトのリンクにわたって所要時間を比較し、アップグレードを正当化します。解決後の 1 秒あたりバイト数を読んで計算を確認します。
よくある質問
なぜ 10 Mbps での 10 MB は 1 秒ではなく 8 秒かかるのですか?
Mbps は 1 秒あたりメガビットです。ツールはビット基準の速度を 8 で割ります。10 MB は 80 メガビットなので、10 Mbps では 8 秒です。
オーバーヘッドや遅延を考慮しますか?
いいえ。 理想的なスループットのみをモデル化しますので、実際の転送はより遅くなることがあります。入力は検証され、結果は決定的です。
ファイルサイズのMBとMiBの違いは何ですか?
MBは十進の単位で1,000,000バイト、MiBは二進の単位で1,048,576バイトです。ファイルサイズが実際に表示されている単位を選んでください。別の単位を選ぶと見積もりがずれます。
回線プランごとのダウンロード時間はどう比べますか?
ファイルサイズは同じにして、Mbpsの値だけを変えて比べます。バイト単位のサイズと毎秒のバイト数も表示されるので、それぞれの見積もりの換算を確かめられます。
結果はどのように表示されますか?
合計の秒数を小数点以下3桁に丸めて示し、同じ時間を時間・分・秒に分けて表示します。さらに1h 5m 3sのような短い表記も付き、短い転送なら8sのように秒だけで表示されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/download-time \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"size":10,"speed":10}'const res = await fetch("https://api.kit.forhosting.com/dev/download-time", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"size": 10,
"speed": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/download-time",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"size": 10,
"speed": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/download-time", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"size":10,"speed":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"size":10,"speed":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/download-time", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"size": 10,
"speed": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.download_time",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
サイズ(size_unit 付き)をバイトに、速度(speed_unit 付き)を 1 秒あたりのバイト数に変換し、割って秒数を求めることで転送にかかる時間を見積もり、時・分・秒の内訳と人が読みやすい文字列を返します。
単位:十進・二進・ビット・バイト
サイズは size_unit で読み取られます。これは十進の単位 B・KB・MB・GB・TB(1000 のべき乗)と、二進の単位 KiB・MiB・GiB・TiB(1024 のべき乗)を受け付けますので、1 MB は 1,000,000 バイト、1 MiB は 1,048,576 バイトです。速度は speed_unit で読み取られ、多くの見積もりでつまずくビットとバイトの区別を扱います。出力は解決後の size_bytes と speed_bytes_per_sec を報告しますので、変換を確認できます。
秒数から読みやすい所要時間へ
変換後、ツールは size_bytes を speed_bytes_per_sec で割って生の秒数を求め、それを小数 3 桁に丸めて seconds フィールドとします。human フィールドはこれらの部分から組み立てられます。
検証・丸め・決定性
サイズと速度はいずれも 0 より厳密に大きい有限な数でなければならず、size_unit と speed_unit は列挙されたキーのいずれかでなければなりません。未知の単位や非正の数は問題を示す型付きの invalid_input エラーを送出し、実効速度 0 はゼロ除算から保護されます。丸めは計算済みの IEEE 値に対する明示的な half-up です。同一の入力は常に同一の JSON を生みます。
連携の活用例
API によるアプリ内の見積もり
エンドポイントを呼び出して「約 8s」のようなリアルタイムの見積もりをユーザーに表示し、human フィールドをそのままインターフェースに送ります。
技術的な質問
MiB や GiB のような二進単位に対応していますか?
はい。size_unit は十進の B/KB/MB/GB/TB(×1000)と二進の KiB/MiB/GiB/TiB(×1024)を受け付けます。speed_unit は bps から Gbps、Bps から GBps までを扱います。
human フィールドとは何ですか?
8s や 1h 5m 3s のような読みやすい所要時間の文字列で、時・分・秒の内訳から正しい桁上がりで組み立てられます。
ブラウザのツールは無料ですか?
はい、widget は無料です(tier A)。API は前払いの KIT 残高で $0.002 から動作し、成功したタスクのみ課金します。