into the void

ソフトウェアに関する雑多な調査日記

Google Driveをバックアップメディアとして使う

Google Driveをローカルストレージとの同期なしで使う方法

Google Drive。ふつうにインストールすると、ローカルドライブの内容とクラウドの内容が同期される。
これはこれで便利だが、クラウドのストレージ容量と同量のローカルストレージが必要になる。
クラウド側のストレージは価格がどんどん下がって手が出しやすくなっているが、ローカルのストレージがSSDなノートPCでは、サイズの関係がクラウド>ローカルとなって、いまいち使いにくい。
このような環境では、ローカルとの同期はなしで、純粋に拡張HDDとしてクラウドストレージを使いたくなる。

調べてみたら幾つかやり方はあるようだ。

  • Expandrive

http://ta21u.hateblo.jp/entry/2014/08/21/004729

  • Transmit

http://augustdesign.info/130.html
これらはGoogle Driveを外付けHDDのようにマウントして使えるようになるもの。
マウント後は普通のディレクトリと同じようにファイルの追加削除ができるので便利。
実際、Expandriveの方は期間限定のフリー版があったので使ってみたが、気持ちよく使えた。
問題は、どちらも有償であるということ。5000円くらいする。機能のわりにちょっと高い気がする。

  • gdrive

http://www.webupd8.org/2014/09/gdrive-simple-google-drive-cli-client.html
これはGoogle Drive上のファイル操作用のCUIコマンドを提供するツール。おそらくGDrive APIを使っている。
上記の二つのようにファイルシステムに統合されるわけではないので、使い方は制限される。例えば、Google Driveを特定のファイルのバックアップ先にするような用途であれば十分使えそう。

今回は3番目のgdriveツールを使って、写真のバックアップをGoogle Driveにしてみる。

Macへのgdriveのインストール

  • ダウンロードとインストール

https://github.com/prasmussen/gdrive#downloads
からMac OS用(drive-darwin-amd64 v1.3.0)をダウンロード。
ダウンロードしたバイナリを適当なフォルダにコピーした後で実行権限をつけておく。

  • 設定

最初にAPIを叩くための認証コードを取得する。
コマンドを始めて実行すると下記のような感じでURLが表示されるので、ブラウザに入力する。
で、発行されるトークンをEnter verification code: の所に入力すれば完了。

$ ./drive-darwin-amd64 
Go to the following link in your browser:
https://accounts.google.com/o/oauth2/auth?client_id=XXXXXXX

Enter verification code: 

使ってみたが、複数のファイルやディレクトリを再帰的にアップロードするには、一手間必要そう。
gdrive自体はコマンドラインツールなのでその標準出力を文字列処理して云々が必要。
スクリプトを書くことでできなくはないが、API的なものを使ってCなりJavaなりで書いた方が楽そう。