一般的に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