MyDriveでは出来ますが社内共有ドライブでフォルダID一覧が取得出来ません。
何か方法がありますでしょうか。
環境
G Suite Business
自身には共有ドライブを作成する権限はないので、作成してもらい、利用している共有ドライブです。メンバー情報をみると自分が管理者です。
https://developers.google.com/drive/api/v2/search-shareddrives
リンク先の意味するアドミニ権限はドメイン=組織全体の管理権限のことなのでしょうか?
次のコードはマイドライブのフォルダIDだと取得できますが共有ドライブでは出来ません。
python
1from pydrive.auth import GoogleAuth 2from pydrive.drive import GoogleDrive 3from google.colab import auth 4from oauth2client.client import GoogleCredentials 5 6auth.authenticate_user() 7gauth = GoogleAuth() 8gauth.credentials = GoogleCredentials.get_application_default() 9drive = GoogleDrive(gauth) 10 11#マイドライブは次のコードで取れる 12dir_id = 'xxxidxxx' 13folder_list = drive.ListFile({'q': "'%s' in parents and trashed=false" % dir_id}).GetList() 14for f in folder_list: 15 print("マイドライブ name: " + f["title"] + ", id: " + f["id"]) 16 17#共有ドライブは取れない 18dir_id = 'xxxidxxx' 19shrefolder_list = drive.ListFile({'q': "'%s' in parents and trashed=false" % dir_id}).GetList() 20for f in sharefolder_list: 21 print("共有ドライブ name: " + f["title"] + ", id: " + f["id"])
エラー内容
pyhon
1NameError Traceback (most recent call last) 2<ipython-input-14-076df17e7b6b> in <module>() 3 8 #sharefolder_list = sharedrive.ListFile({'q': "driveId='%s' and trashed=false" % dir_id}).GetList() 4 9 shrefolder_list = drive.ListFile({'q': "'%s' in parents and trashed=false" % dir_id}).GetList() 5---> 10 for f in sharefolder_list: 6 11 print("共有ドライブ name: " + f["title"] + ", id: " + f["id"]) 7 8NameError: name 'sharefolder_list' is not defined
また次のコードでは共有ドライブ内フォルダ名は取得できますが、IDは取得できません。
Python
1import os 2from google.colab import drive 3drive.mount('/content/gdrive') 4 5import pathlib 6import glob 7import pprint 8 9db_path = '/content/gdrive/Shared drives/特定のフォルダ名/' 10l_dir = glob.glob(db_path + '**/**/') 11print(l_dir)
記述方法が共有フォルダでは異なるのだろうと思われますがそもそも可能なのかも調べきれませんでした。
ご教授よろしくお願いします。
あなたの回答
tips
プレビュー