Как я могу получить доступ к Team Drive вместо личного Google Drive с помощью PyDrive? - PullRequest
1 голос
/ 17 апреля 2019

Я пытаюсь использовать PyDrive для программного перечисления и загрузки файлов, хранящихся на Team Drive, к которым я могу получить доступ в браузере. Когда я делаю это:

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

gauth = GoogleAuth()
drive = GoogleDrive(gauth)

file_list = drive.ListFile(
    {
        'q': "'root' in parents and trashed=false",
        'corpora': "teamDrive",
        'teamDriveId': <team drive ID>,
        'includeTeamDriveItems': "true",
        'supportsTeamDrives': "true"
    }
).GetList()
for file1 in file_list:
    print('title: %s, id: %s' % (file1['title'], file1['id']))

Я получаю список файлов только на моем личном диске, а не на командном. Что я делаю не так?

Примечание 1: Я получил <team drive ID>, открыв Team Drive (корневую папку) в браузере и скопировав все после "https://drive.google.com/drive/folders/"

Примечание 2: Браузер появляется в drive.ListFile и выдает Authentication successful.

1 Ответ

1 голос
/ 07 июня 2019

В командном диске файлы могут иметь только одну родительскую папку, а родительский файл файла командного диска никогда не является root.

Я смог снова использовать идентификатор диска вместо root, чтобы заставить это работать, ноЯ также использовал логические значения для true вместо строк:

drive.ListFile({'q':"'<Team_Drive_Id_Or_Folder_Id>' in parents and trashed=false", 'corpora': 'teamDrive', 'teamDriveId': '<Team_Drive_Id>', 'includeTeamDriveItems': True, 'supportsTeamDrives': True}).GetList()
...