複数のgbファイルをあるサーバーから別のサーバーに転送しようとしています。問題はRTTが150ms +です。すでにaria2を使ってみましたが、16の接続に制限されていましたが、lftpはストールした転送に対して何の保護もしていません。複数の接続を使用してカールでダウンロードする
curl cliを使用して複数の接続で1つのファイルをダウンロードできるかどうか疑問に思っています。
複数のgbファイルをあるサーバーから別のサーバーに転送しようとしています。問題はRTTが150ms +です。すでにaria2を使ってみましたが、16の接続に制限されていましたが、lftpはストールした転送に対して何の保護もしていません。複数の接続を使用してカールでダウンロードする
curl cliを使用して複数の接続で1つのファイルをダウンロードできるかどうか疑問に思っています。
いいえ、カールツールにはこのような能力はありません。
(オハイオ州およびところで、大RTTは非常にまれプレーンTCP転送が遅い理由を説明されていない)
複数の同時ダウンロードを行い、その後、完了時にそれらを組み合わせることカールラップpcurlと呼ばれるスクリプトがあります。 10の接続に
これはデフォルトではなく、これはライン上MAX_SEGMENTSで81
を変更することができますそれは、このようにして起動します:
./pcurl.sh http://myurl.to/a/very/largefile.zip
それは可能です。 curlで-I
オプションを指定して合計ファイルサイズを取得します。
シェル内で多くのプロセスをforkすることができます。curl
接続ごとに異なるContent-Length
ヘッダーを使用して、ファイルの別の部分をダウンロードします。
すべてのタスクが完了したら、すべてのダウンロードスライスを大きなファイルにマージします。
私は単純なスクリプトを書いています。ここにはmcurl.shがあり、-s
オプションでは、大きなファイルをダウンロードするために作成するタスクの数を指定できます。