【2019/10/15 추가】Colaboratory에서 Google 팀 드라이브를 마운트하는 방법

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 팀 드라이브 마운트



    그런데, 드디어 본제에. 팀 드라이브를 마운트하는 방법은 공식 위키에 있습니다.
    조속히 결론. 이런 느낌으로 하면 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')
    

    팀 드라이브도 실은 더 쉽게 마운트할 수 있는 방법이 있을지도 모르겠네요.

    참고로 한 기사


  • Google Colaboratory에서 Google Drive의 특정 폴더를 탑재하는 방법
  • Colaboratory에서 Google 드라이브에 쉽게 마운트된 이야기
  • 좋은 웹페이지 즐겨찾기