このパッケージは、Go言語で書かれた分割ダウンロード用のコードです。指定されたURLからデータをダウンロードし、バイト範囲リクエストが可能な場合は分割ダウンロードを行います。それ以外の場合は一括ダウンロードを行います。
- clone
git clone https://github.com/naka-c1024/download.git
- main関数がある階層まで移動
cd download/cmd/download
- ビルド
go build .
- 実行
./download https://example.com/path/to/file
以下のように呼び出して使用します。
package main
import "github.com/naka-c1024/download"
func main() {
err := download.Do("https://example.com/path/to/file", 5)
if err != nil {
// handle error
}
}
この例では、指定したURLからファイルを5つに分割してダウンロードします。
このパッケージは並行ダウンロードをサポートしていますが、指定されたURLがバイト範囲リクエストをサポートしていない場合は、一括ダウンロードを行います。
また、並行処理はgoroutineを起動する分の時間が必要なので、軽いデータではwget
コマンドより遅くなります。
curl -I https://example.com/path/to/file
ヘッダの中にAccept-Ranges: bytes
が存在していたらバイト範囲リクエストが可能です。