CentOS7でGoogle Driveにアクセスするためskickaを試す
名城でもGSuiteが契約されていることをつい2週間前に知り,データをいそいそとGoogle Driveに移した。今日になってCentOS7でGoogle Driveにバックアップした巨大データを触る必要が出てきたのだが,ブラウザでDLするのは馬鹿みたいなのでCLIを漁ったところSkickaが良さそうだったので導入。
Skickaはgolangで書かれている。以前少し触ったがLinuxではいじっていなかったのでせっかくだし導入から。どうせGo触り始めたのはGoogle DriveをCLIでいじるためだったのでちょうどいい。
$ yum install golang $ go version go version go1.11.5 linux/amd64
入った。あとはPATHを通す。
$ mkdir /usr/local/go $ cd /usr/local/go $ mkdir src pkg bin $ vi ~/.bash_profile
GOPATH=/usr/local/go
PATH=$GOPATH:$PATH
source ~/.bash_profile
読み直すのを忘れずに。あとの導入のHello Worldとかはググれば出てくるのでgo run hello.goするだけで終わる。
ここからskickaを入れる。
$ go get github.com/google/skicka
なんというか、”Go get’em!”って感じでいいですね。yumとかpipのノリのinstall skickaでは通らないので注意。go help見ればわかるけど、
go get: download and install packages and dependencies
go build: compile packages and dependencies
go install: compile and install packages and dependencies
です。
とか偉そうなこといってたらパス通したのになぜか/usr/local/go/skickaにインストールされてしまいskickaコマンドが通らないのでGOBIN以下にコピーし直した。
$ cp skicka $GOPATH/bin/
これで
$ skicka
が通ればOK。
ここから設定ファイルの作成とGoogle Driveの認証。
CentOS7だとGUI環境ない人もいるはずなので(こいつには一応GNOME Desktop入れてあるけどね)ブラウザ経由せずにGoogle Driveのauthをする。出てきたURLを手元のマシンのブラウザで開いてGoogle Driveにログインすればverification codeが吐かれるのでそれをこっちに入れる。
$ skicka init $ skicka -no-browser-auth ls Go to the following link in your browser: https://accounts.google.com/o/oauth2/auth?**** $ Enter verification code: **** Updating metadata cache: [=======================================================================================================] 100.00% 1s Documents/ Files/ ***20191111111.pdf
authが通れば自動的にGoogle Driveのルートフォルダの内容がls的な感じで表示される。あとはbashとおんなじような操作感。アップロードとかダウンロードももちろんそのまま。
$ skicka upload ***.dat
うん、よさそうですね。