- Rangeアクセスを用いる
- いくつかのゴルーチンでダウンロードしてマージする
- エラー処理を工夫する
- golang.org/x/sync/errgourpパッケージなどを使ってみる
- キャンセルが発生した場合の実装を行う
- 分割ダウンロードを行なう
- ダウンロードするファイルをURLで指定できる
- ダウンロードするファイルを指定していなかったらエラー
- ダウンロードするファイルのURLが存在しなかったらエラー
- 指定されたURLを分割してダウンロードできる
- 指定範囲をダウンロードする
- ダウンロードした結果をマージしてファイルに出力する
- 並列ダウンロードしているうち、ひとつでも失敗したらエラーを出して終了
- SIGINTをキャッチして中断することができる
- ダウンロードするファイルをURLで指定できる