高速にファイルがダウンロード出来るGo製のクライアント「Pget」の紹介です。

サーバーからファイルをダウンロードするツールと言われれば"GNU Wget"や"cURL"が思い浮かびそうな感じじゃないでしょうか。Wget等のツールは、サーバー上からバイナリファイルやソースコードを取得する時によく使うので、特にLinuxサーバーを運用している人にはお馴染みだと思います。

上記のツールを使っていて、今までダウンロード速度を意識したことはありませんでしたが " Wgetより高速にファイルがダウンロード出来る " と謳われるダウンロードクライアントが「Pget」です。

pgetはGO言語で書かれており、コマンドライン上で動作します。

Pget vs Wget(* GitHub上のレポジトリから)

URL: http://ubuntutym2.u-toyama.ac.jp/ubuntu/16.04/ubuntu-16.04-desktop-amd64.iso

# wget
time wget http://ubuntutym2.u-toyama.ac.jp/ubuntu/16.04/ubuntu-16.04-desktop-amd64.iso
wget   3.92s user 23.52s system 3% cpu 13:35.24 total
# pget
time pget -p 6 http://ubuntutym2.u-toyama.ac.jp/ubuntu/16.04/ubuntu-16.04-desktop-amd64.iso
pget -p 6   10.54s user 34.52s system 25% cpu 2:56.93 total


上のPget VS Wgetでは1.4GBのファイルをwgetとpgetを使ってダウンロードに掛かった時間が計測されており、Wgetを使ってファイルをダウンロードした場合が"13分35秒"、Pgetを使った場合は"2分56秒"となっています。

上を見る限りWgetよりもPgetのほうが高速にファイルをダウンロード出来るようなので、実際に導入してみました!

Pgetのインストール ~ 使い方

Pgetのインストールは主に二種類あり、 go getコマンドを使って行う方法と、Macをお使いであればHomebrewでインストールできます。
( * go getをコマンドを使ってインストールする場合は事前に Go が導入されている必要があります )

# go getでインストールする場合 #

# install
$ go get github.com/Code-Hex/pget/cmd/pget

# update
$ go get -u github.com/Code-Hex/pget/cmd/pget


# Mac OSでHomebrewでインストールする場合 #
brew tap Code-Hex/pget
brew install pget


導入が済めばコマンドライン上でpgetコマンドが使えるようになります。

$ pget
Pget v0.0.3, 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                split ratio to download file # 分割(並列)でダウンロードするオプション 
  -o,  --output     output file to PATH or FILENAME # 指定パス、又は指定ファイル名オプション
  -t,  --timeout          timeout of checking request in seconds # タイムアウトのオプション
  --check-update                   check if there is update available # 最新のPgetがリリースされたかチェック
  --trace                          display detail error messages # エラーメッセージの表示

# 使い方
$ pget URL

# オプションを指定する場合
$ pget -p [num] URL
# e.x.p : pget -p 3 http://someFile......


使い勝手はwgetに似ており、wgetの沢山のオプションを省いてシンプルにした印象を受けました。
wgetを使ったことがある人なら直感的にわかると思います )

せっかく導入したので、試しにcURL, Wget, Pgetの3つを使って ダウンロード速度を比較してみました。対象は25.8MBのnode.jsのソースファイルです。

 * ダウンロード速度はお使いの環境によって変わります  

3つのソフトを使って比較しましたが、 "Pgetが3.56秒"、"Wgetが5.43秒"、"cURLは9秒"となり、Pgetが一番ダウンロード速度が早い結果になりました!

Summary

以上がPgetの紹介でした。

PgetはGoで作られているので、Linux、Mac OSだけではなく、Windowsでも使えます。
( 各プラットフォームのバイナリファイルも公開されています )

大きなファイルをダウンロードしたい時に使うと便利なので、気になった人はゼヒ×2チェックしてみてください!

Github: Code-Hex/pget

 

この記事のカテゴリ

プログラミング

この記事のタグ

サーバー関連 , Go

Socialシェアボタン

スポンサーリンク