2019/10/15 追記
またマウントできなくなっていたので直しました。
諸事情で変数名も変わっていますが、気にしないでください。
それにしてもconfigファイルでteam_drive_id
がチームドライブの一番上の階層のIDで
root_folder
がマウントしたいフォルダのIDという仕様が気になる…
root って言われるとそれが一番上に思えてしまう。
# 共有ドライブ(旧チームドライブ)
team_drive_name = "team_drive"
team_drive_root_id = "共有ドライブの最上位のディレクトリのIDを設定"
team_drive_id = "マウントしたいディレクトリのIDを設定"
# おまじない
!add-apt-repository -y ppa:alessandro-strada/ppa > /dev/null 2>&1
!apt-get update -qq > /dev/null 2>&1
!apt-get -y install -qq google-drive-ocamlfuse > /dev/null 2>&1
from google import colab as co
import json
# 認証①
co.auth.authenticate_user()
# 認証②
with open('./adc.json', 'r') as f:
json_dict = json.load(f)
client_id = json_dict['client_id']
client_secret = json_dict['client_secret']
!google-drive-ocamlfuse -headless -id={client_id} -secret={client_secret}
# チームドライブをマウント
!cp -f ~/.gdfuse/default/config tconfig
!sed -i -e "s/^team_drive_id=$/team_drive_id={team_drive_root_id}/" tconfig
!sed -i -e "s/^root_folder=$/root_folder={team_drive_id}/" tconfig
!mkdir -p {team_drive_name}
!google-drive-ocamlfuse -config ./tconfig -cc {team_drive_name}
2018/9/26 追記
この手順で確かにマウントはできますが、変更内容の反映にだいぶ時間がかかるとか、
再マウントして初めて変更が反映したというような声を聞きました。
変更反映に時間がかかるんでしょうかね?
うーむ、そんな問題があったとは…
はじめに
Colaboratory で Google チームドライブをマウントする方法が意外と見つからなかったので、
じゃあ自分で書いてしまおうと重い腰を上げた次第です。
少しでも同じことをやりたいなぁと思っている方々の助けになれば幸いです。
【復習】Google マイドライブ等をマウントする
マイドライブやその他特定ディレクトリのマウント方法は こちら を参考にさせて頂きました。
(メチャ分かりやすくて助かりました。この場を借りてお礼申し上げます)
…しかし、トラブル発生。最初はこれで動いてたんですが、ある日急に google-drive-ocamlfuse
のインストールで怒られるようになりました。
E: Unable to locate package google-drive-ocamlfuse
なんだこれ?と思って調べたら製作者様の git issue にこんな記述が。

「パッケージ消しちゃったYO! DL して dpkg でインストールしてくれ、HAHAHA!!」的な??
それならば仕方あるまい。最初のパッケージ群インストール部をこのように変更したところ
無事マイドライブをマウントできました。
(もちろん任意フォルダもマウントできましたよ~)
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools libfuse2
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!wget https://launchpad.net/~alessandro-strada/+archive/ubuntu/ppa/+files/google-drive-ocamlfuse_0.7.0-0ubuntu1~ubuntu18.04.1_amd64.deb
!dpkg --install google-drive-ocamlfuse_0.7.0-0ubuntu1~ubuntu18.04.1_amd64.deb
!apt-get -y install -qq fuse
変更点を一応書いておきます。
- 最初に libfuse2 も apt-get install する
- google-drive-ocamlfuse は wget で落として dpkg でインストールする
Google チームドライブをマウントする
さて、ようやく本題へ。チームドライブのマウント方法は、 公式のwiki にありました。
早速結論。こんな感じにすればOKです。
!cp -f ~/.gdfuse/default/config tconfig
!sed -i -e "s/^team_drive_id=$/team_drive_id=[TEAM_DRIVE_ROOT_FOLDER_ID]/" tconfig
!sed -i -e "s/^root_folder=$/root_folder=[TEAM_DRIVE_FOLDER_ID]/" tconfig
!mkdir -p teamdrive
!google-drive-ocamlfuse -config ./tconfig -cc teamdrive
!ls teamdrive
ポイントはこの2点。
-
[TEAM_DRIVE_ROOT_FOLDER_ID]
はチームドライブの ROOT (一番上の階層)フォルダの ID を指定する -
[TEAM_DRIVE_FOLDER_ID]
はチームドライブ内の実際にマウントしたいフォルダの ID を指定する
う~ん簡単♪
最後に
この記事を書いている内に知ったんですが、 こちら のように今はたった2行でマイドライブをマウントできるようです。
from google.colab import drive
drive.mount('/content/drive')
チームドライブも実はもっと簡単にマウントできる方法があるのかもしれませんね。