LinuxのターミナルのみでGoogleDriveにアクセスする方法

Terminal環境しかないLinux(例えばAWSやPaperSpaceのリモートサーバーとか)でGoogleDriveにアクセスしてデータをやり取りする方法。

Skickaを使います。
[linkcard url=”https://github.com/google/skicka
“]

skicka download googledrive.txt ~/
skicka upload ~/linux.txt /

のような感じでダウンロード/アップロードします。

Go言語インストール

SkickaはGo言語で開発するためGo言語をインストールする必要があります。
配布ページでダウンロードリンクを確認します。以下は私がやった時の記述です。

# ユーザーホームで実行する
cd ~/
# Goをダウンロード
wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
# /usr/localにアーカイブを展開して元データを削除
sudo tar -C /usr/local -xzf ~/go1.10.3.linux-amd64.tar.gz
rm go1.10.3.linux-amd64.tar.gz
# パスを通す
echo '# golang' >> ~/.bashrc
echo export PATH='$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc

Go言語はこれで動作のはず……です。

source ~/.bashrc
go version
go env

で動作確認します。

Skickaのインストール

以下のコマンドでskickaをダウンロードしてビルドします。

go get github.com/google/skicka
go build github.com/google/skicka

最後にskickaをPATHの通ったところに移動させます。PATHはecho $PATHで確認。

sudo mv ~/go/bin/skicka /usr/local/go/bin/

以上でSkickaが動作可能です。

Skicka初期設定

# 初期設定
skicka init
# ブラウザなしでGoogleへの認証
skicka -no-browser-auth ls

上記のコマンドでURLが出てくるためそれを何かしらの端末のブラウザで開きます。

ブラウザで認証コードが出てくるのでそれをLinux側に貼りつけると初期設定完了。

skicka ls

でGoogleDrive内が参照できます。