2017年8月22日火曜日

【G Suite 専用】G Suite ユーザー会 EDU分科会参加 - Google Drive CLI Client ツール による Google Drive 制御

8/21、G Suiteユーザー会初EDU分科会が Google東京オフィス内で開催されました。

初めての EDU分科会ということで G Suite for Education を導入している教育機関ならではの事例や悩みなどを聞けるかなぁと思ってワクワクしていました。

内容についてどこまで公開可能か分からないので、ここで詳細をお伝えするのは控えておきます。個人的にはいろいろためになる話が聞けて参加してよかったなぁと思います。最後にあったディスカッション(アンカンファレンス)もかなり面白かったのですが、時間が押していたこともあり、中途半端で終わってもったいなかったなーと思いました。今回2時間でしたが、これは3時間ぐらい欲しいかなというところです。

さて、紹介のみされた Google Drive CLI Client ツールについて、実際に MacOS Sierra (10.12.6)と Linux (Redhat EL 6)で動作確認したので、やり方について載せておきます。これは一般 Googleドライブでもできるはずです。

Google Drive CLI Client ツール


今回の一番大きな収穫はこれかなと思いました。
G Suite for Education の強みは、容量無制限の Google Drive が使えることです。
それを利用すれば、サーバーのバックアップも Google Drive に保存すると有効活用できると思いませんか。WordPress のプラグインで Google Drive に保存することもやったりしていましたが、時々認証問題でこけることがあります。これが WordPress のコマンドツール WP-CLIのように、コマンドベースで Google Drive に保存できるとなると、バックアップとしてかなりつかえるんじゃないかと期待しています。
このあたりは実際にやってみて、別途本ブログでまとめてみたいと思います。

インストール方法(MacOSX 編)


インストールは、Homebrew が入っていれば、 ターミナルアプリより
  • brew install gdrive 
でインストールできます。

Linux や MacOSXのネイティブコードが
にあるので、ここからダウンロードして実行権限をつけると利用できます。然るべきパスに配置(/usr/local/binなど)におけば便利に利用できるかと思います。ただ入れなくても使えます(AMIMOTOで使えたよ!)。また、ユーザーごとにできるのがよいですね!設定ファイルが「$HOME/.gdrive/token_v2.json」に保存されます。

利用準備


まずはじめに、Googleアカウントとの接続が必要です。

下図がその手順①から④になります。

① gdrive list 

というコマンド入力して、Enterを押すと、

Authentication needed
Go to the following url in your browser:https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=......

と出て来るので、ブラウザにURLをコピーしてアクセス。
利用したいGoogleアカウントでログインし、gDriveのアクセスを許可します。
すると確認コードらしきものがでてきます。


これを③ Enter verification code: の横にコピー&ペーストしてEnter。
すると認証は完了し、gdrive list で最近の 30件のファイルリストが表示されます。
④は gdrive を扱う上で重要な、ファイルやフォルダの IDとなります。

Googleドライブでたとえばフォルダについては
  • https://drive.google.com/drive/folders/◯◯◯◯◯
のようになっていますが、この◯◯◯◯がフォルダIDになります。

例1)test フォルダ内のファイルリストを表示する
  • gdrive list --query " 'testフォルダID' in parents "
例2)test フォルダ内に、gdrive フォルダを作成する
  • gdrive mkdir  --parents 'testフォルダID'  gdrive
例3)test フォルダ内に、ファイル(hogehoge)をアップロードする
  • gdrive upload  hogehge  --parent   'test フォルダID' 
例4)test フォルダ内に、フォルダ(hogehoge)をアップロードする
  • gdrive upload  hogehge  --parent   'test フォルダID'  --recursive
例5)test フォルダ内に、hogehogeフォルダを tar+gzip 圧縮 し hogehoge.tar.gz 名でアップロードする
  • tar czvf  -   hogehoge  | gdrive upload  -  --parent  'test フォルダID'  hogehoge.tar.gz
例6)test フォルダ内に、フォルダ(hogehoge)を増分アップロードする
  • gdrive sync upload  hogehoge   'test フォルダID' 
※ 最初の sync 時のみ、test フォルダは空にしておく必要があります。

例7)test フォルダ内に、フォルダ(hogehoge)を差分アップロードする
  • gdrive sync upload  hogehoge   'test フォルダID'  --delete-extraneous 
※ 最初の sync 時のみ、test フォルダは空にしておく必要があります。

サーバーなら、例5)が使えるかなと思います。
例7はファイルやフォルダのタイムスタンプがアップロードした日時になってしまうので、使えないかなぁと思います。

これ WordPress を含むサイトでも使えそうですね。
メインにつかうにはどの程度安定性があるか不明なので、セカンドバックアップとしては有用かなーと思います。

またファイルを探し出したり、フォルダを作成したり削除したりとコマンドベースでいろいろできるのがよいですね!これはかなり使えそうです!

検索パラメータ(--query / -q オプション)



設定ファイル


$HOME/.gdrive/token_v2.json 


2017年8月22日 @kimipooh

0 件のコメント:

コメントを投稿