CentOS7でGoogle DriveにアクセスするためSkickaを試す

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

うん、よさそうですね。