一般的にCUIでダウンロードするコマンドっていうと「curl」か「wget」だが、いかんせん遅い。というのも分割ダウンロードに対応できてないからである。
以前にaxelコマンドという爆速ダウンローダーで記事書いたけど、それに迫る、凌ぐほどの爆速ダウンロード可能なツールがあったのでメモ
インストール
ココからバイナリファイルをダウンロードできる
Ubuntuとかの場合は「pget_linux_amd64.tar.gz」、Macの場合は「pget_darwin_amd64.zip」を選択。
以下、Ubuntuの場合
wget https://github.com/Code-Hex/pget/releases/download/0.0.6/pget_linux_amd64.tar.gz tar xzfv pget_linux_amd64.tar.gz sudo mv pget_linux_amd64/pget /usr/local/bin/
使い方
$ pget Pget v0.0.6, parallel file download client Usage: pget [options] URL Options: -h, --help print usage and exit -v, --version display the version of pget and exit -p, --procs <num> split ratio to download file -o, --output <filename> output file to <filename> -d, --target-dir <path> path to the directory to save the downloaded file, filename will be taken from url -t, --timeout <seconds> timeout of checking request in seconds -u, --user-agent <agent> identify as <agent> -r, --referer <referer> identify as <referer> --check-update check if there is update available --trace display detail error messages
見たまんまではあるが、例えばUbuntuOSのisoファイルを10分割でダウンロードしたい場合は
pget -p 10 http://cdimage.ubuntulinux.jp/releases/16.04/ubuntu-ja-16.04-desktop-amd64.iso
すると
$ pget -p 10 http://cdimage.ubuntulinux.jp/releases/16.04/ubuntu-ja-16.04-desktop-amd64.iso Checking now http://cdimage.ubuntulinux.jp/releases/16.04/ubuntu-ja-16.04-desktop-amd64.iso Download start from http://cdimage.ubuntulinux.jp/releases/16.04/ubuntu-ja-16.04-desktop-amd64.iso 1388429312 / 1388429312 [============================================================================================================================================] 100.00% 30s binding with files... 1388429312 / 1388429312 [=============================================================================================================================================] 100.00% 1s Complete
でダウンロードできる。マジ快適
ただし、サーバー側がAccept-Rangesに対応している必要があって、未対応(というかレジューム非対応)のサーバーに対してリクエストするとエラーを返す
pget -p 10 https://dumps.wikimedia.org/jawiki/20170701/jawiki-20^C0701-pages-articles-multistream.xml.bz2 Checking now https://dumps.wikimedia.org/jawiki/20170701/jawiki-20^C0701-pages-articles-multistream.xml.bz2 Error: not supported range access: https://dumps.wikimedia.org/jawiki/20170701/jawiki-20^C0701-pages-articles-multistream.xml.bz2