ジャンカーな日々

こころのすさんだ管理人[る~]がAndroid/Windows/Linux/OSX/iOS/パーツなどの話題やお買い得商品を紹介していきます

Raspberry Pi Raspbian でGoogle Drive / Cloud Storageを使う(マウントしてドライブとして使う)

Google Driveをバックアップ先に使ったり、過去ログ置場にするのに使いたいな。
できればマウントして、cpとかmvとかrsyncとかでデータ入れられれば、と思っている人や情報を探している人もいると思ったのでまとめてみました。

1.CLIGoogle Drive/Google Cloud Storageへアクセスを行うgsutilをインストールする

$ sudo apt-get install gcc libssl-dev python-dev python-setuptools python-pip python3-dev python3-setuptools python3-pip libffi-dev fuse fuse-utils
$ sudo pip install --upgrade setuptools
$ sudo pip install gsutil
$ sudo pip install --upgrade gsutil

 2.CLIGoogle Drive/Google Cloud Storageをドライブとしてマウントするgdrivefsをインストールする
※前提条件としてgsutilが使えないとだめなので、gsutilを入れてから実行する

ツールレポジトリはこちら
https://github.com/dsoprea/GDriveFS
※pipでインストールできるのでマニュアル読みに行くぐらいしか…

$ sudo pip install --upgrade google-api-python-client
$ sudo pip install gdrivefs
$ sudo mkdir -p /mnt/gdrivefs

 AuthCodeの取得

$ sudo gdfstool auth -u

 以下のようにURLにアクセスして許可を取れみたいに言われるので、あらかじめブラウザで使いたいgoogle drive/storageにアクセスした状態にしてください

To authorize FUSE to use your Google Drive account, visit the following URL to produce an authorization code:
https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.file&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&client_id=xxxxxxxxxxxxxxxx.apps.googleusercontent.com&access_type=offline

 指定されたURLにアクセスすると、ドライブへの書き込み許可を求められるので、承認するとAUTH CODEが発行されます

f:id:dorodorodoroid:20150128000346j:plain

f:id:dorodorodoroid:20150128000356j:plain

AuthCodeをホームの.gdfs.credsへ以下のコマンドで記録します、全ユーザで使う場合は/var/cache/.gdfs.credsがおすすめ

$ sudo gdfstool auth -a ~/.gdfs.creds "(取得したコード)"
Authorization code recorded.

 ※なお、.gdfs.credsの名称変えれば複数アカウントもOKです

手動マウント

$ sudo gdfs -o allow_other ~/.gdfs.creds /mnt/gdrivefs

 確認

$ df -h
ファイルシステム                              サイズ  使用  残り 使用% マウント位置
gdfs(/root/.gdfs.creds)                         15G     0   15G    0% /mnt/gdrivefs

 こんな感じになってればOK

fstabへの記述の場合

$ sudo sudo ln -s `which gdfs` /sbin/mount.gdfs

 して、mountコマンドとして使えるようにしてから

$ sudo vi /etc/fstab

#以下追記
~/.gdfs.creds /mnt/gdrivefs gdfs allow_other 0 0

 動作テスト

$ sudo mount /mnt/gdrivefs

 gdfstoolを使う場合

$ sudo gdfstool mount ~/.gdfs.creds /mnt/gdrivefs

 チューニング

#ラージセクタにシステムが対応している場合(4k block -> 64K block )

$ sudo gdfs -o big_writes ~/.gdfs.creds /mnt/gdrivefs

 これで、/mnt/gdrivefsに一般ユーザなら16GBの、Worksユーザなら1TBのオンラインストレージがマウントされます
マウントしてしまえば、一般のコマンドからアクセスができますね(APIの一日あたりの上限があるので使い方には注意ですが…)

 

ジャンカーな日々はamazon.co.jpを宣伝しリンクすることによって サイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。ちょっとだけ紹介ついでにお小遣いをいただいております(_ _)