世界を動かす技術を、日本語で。

Firefoxで大きなダウンロードを再開可能にする方法

概要

  • Firefox 28以降 で大容量ダウンロードの安定性問題
  • network.http.response.timeout の設定が影響
  • 値を0や大きな数値 に変更で改善報告
  • サーバー側が レジューム対応 している必要
  • wget などの他ツールも有効な代替手段

Firefoxの大容量ダウンロードとnetwork.http.response.timeoutの関係

  • Firefox 28以降、デフォルトで network.http.response.timeout が300秒に設定
  • この設定により、 大容量ファイルのダウンロード再開や安定性 に悪影響
  • about:config から network.http.response.timeout を 0 または 非常に大きな値 に変更することで、ダウンロードの再開性・安定性が向上
  • サーバー側が レジューム(再開)機能 に対応していない場合、この方法は無効
  • 問題の本質は、 Firefoxがエラー時にレジューム可能なダウンロードを再開できない 点
  • .partファイル の存在をFirefoxが無視するケースもあり、詳細な理由は不明
  • Firefoxのレジューム機能は 接続タイムアウト の挙動に依存している可能性

Firefoxのダウンロード機能の課題と代替案

  • Firefoxの レジューム機能自体が不安定 で、2005年頃から既知の問題
  • 手動で.partファイルを操作 して再開させる方法も存在するが、実用的ではない
  • wget -c -O "$filename" "$url" の利用で、より安定したダウンロードが可能
    • wgetは 大容量ファイルや不安定な回線 で特に有効
  • Firefoxは内部的に 隠れたリトライ処理 を行っている可能性
    • network.http.response.timeout の値を超えると、このリトライ処理にも影響

まとめと注意点

  • Firefoxの 大容量ダウンロードの安定性向上 には、 network.http.response.timeout の調整が有効
  • サーバー側のレジューム対応 が前提条件
  • wgetなどの外部ツール も積極的に活用推奨
  • Firefoxのソースコードでの詳細調査は未実施のため、動作の全容は不明

Hackerたちの意見

aria2っていうダウンロードユーティリティを使うのが好きなんだ。ここ数年、ウェブブラウザで10MB以上のものをダウンロードしたことないし、この方法だとプロトコルが増えたり、複数の接続ができたり、もちろんダウンロードの続きもできるからね。そういう意味では、誰かがこの問題の解決策を見つけてくれてよかった。外部のダウンロードユーティリティを使わない人たちにとっては、生活が楽になるよね…こういうバグの解決策ってどうやって見つけるんだろう?

└

最近、偶然にもaria2がマグネットファイルをサポートしてることに気づいたんだ。これで「ここからこっちに移動して」っていう使い方はほぼカバーできると思うよ。

└

大きなダウンロードでクッキーが必要になるまで、ブラウザと統合されるべきだね。

└

Aria2が一番だね。私にとって唯一足りなかったのは、メニューバーで進捗を監視する方法だったから、これを作ったよ。https://abdus.dev/projects/tricklebar/

└

Variaはaria2をベースにした素敵なGUIとダウンロードマネージャーだよ。: https://giantpinkrobots.github.io/varia/

これ試してみる!Firefoxでダウンロードを再開する方法は、1. .partファイルを一時ファイルに移動 2. 再度ダウンロードを開始;新しい.partファイルが作成される 3. ダウンロードを一時停止 4. 一時ファイルを.partファイルに移動して上書き 5. ダウンロードを再開;古い.partファイルが止まったところから続く。これは「一回限り」のダウンロードリンクが途中で中断された場合、例えば接続が不安定な時にだけ必要なんだ。普通に再開しようとすると、(たぶん)400エラーが返ってきて、FFが.partファイルを消しちゃう。

└

そのトリックには一つ注意点があるよ:サーバーが違うファイルを選んだり、リンクが新しいバージョンを指している場合、Firefoxは古い.partを新しいバイトにくっつけちゃって、エラーもなしに壊れたファイルができちゃう。再開リクエストは範囲だけをチェックするから、サーバーがETagやLast-Modifiedを返さない限り、2つの部分が一緒だと保証されないんだ。ソースがハッシュを公開しているなら、後でチェックする価値はあるよ。

└

それって2002年のトリックみたいだね。どうしてこの問題が数十年も解決されてないんだろう?

└

(この記事にはこのトリックへのリンクが含まれています)

Getrightを覚えてる人いる? https://www.getright.com/

└

まじで

└

必須でめっちゃ良かった!まだ存在してるなんて信じられない。

Hacker Newsで議論の続きを見る