LoginSignup
8

More than 5 years have passed since last update.

githubからファイルを直接ダウンロード

Last updated at Posted at 2016-03-10

Github限定ですが、レポジトリの中から特定のファイルだけをHTTPでダウンロードするコマンドを作ってみました。
レポジトリの中の1ファイルだけダウンロードしたい場合に使えます。
1ファイルが100MBまでダウンロードできます。

準備

GithubのPersonal access tokenを事前に作成しておきます。
https://github.com/settings/tokens

Screen Shot 2016-03-09 at 6.15.10 PM.png

ファイルをダウンロード

$ git clone https://gist.github.com/56cdb6a297d38aaa6440.git
もしくは
$ curl https://gist.githubusercontent.com/wf9a5m75/56cdb6a297d38aaa6440/raw/f5af8da3424b9a0df407125cb69d6355e6c0f19a/filedownload.sh -O 

環境変数として、~/.profileに以下を追加します。

export GITHUB_ACCESS_TOKEN="<YOUR PERSONAL ACCESS TOKEN IS HERE>"
export GITHUB_USERNAME="<YOUR GITHUB ACCOUNT NAME>"
export REPO_OWNER="<REPOSITORY OWNER NAME>"

使い方1

./filedownload.sh "レポジトリ名" "ファイルパス"

例えば MyRepositoryというレポジトリから、tools/bin/stericson.busybox-1.23.2.apkをダウンロードします。

$ ./filedownload.sh MyRepository tools/bin/stericson.busybox-1.23.2.apk
---DONE

これでstericson.busybox-1.23.2.apkがローカルにできているはずです。

使い方2

githubのblobのURLを直接渡すことも出来ます。

$ ./filedownload.sh https://github.com/MyName/MyRepository/blob/tools/bin/stericson.busybox-1.23.2.apk

何が嬉しいの?

psshコマンドと合わせて使うとハッピーになれます。

$ pssh -h hosts.txt --inline-stdout  -t 0 "filedownload.sh https://github.com/MyName/MyRepository/blob/tools/bin/stericson.busybox-1.23.2.apk"

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8