Python - Загрузить файл на Google Team Drive - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь загрузить файл на определенный Team Drive через API-интерфейс Python, но пытаюсь определить, где указать teamDriveId. Я работаю с Drive v3.

Вот функция, с которой я работаю:

def upload_file(self):
    # self.service: Google Drive Hook - works well for other functions
    # self.drive_id: Id of Team Drive I am trying to upload to

    metadata = {'name': 'sample.txt'}
    media = MediaFileUpload('sample.txt', mimetype = 'text/plain')
    upload = self.service.files().create(body=metadata, 
                                         supportsTeamDrives=True,
                                         media_body=media,
                                         fields='id).execute()

Я попытался поместить это как в функцию create(), так и в metadata JSON как {'parents': self.drive_id}, но это либо вернет Unexpected keyword argument: teamDriveId, либо файл будет просто загружен на мой личный диск.

У меня нет папок внутри Team Drive, с которым я пытаюсь работать. Похоже, я могу установить {parents': <teamDrive_folderId>}, но я надеюсь найти решение, в котором мне не нужно указывать папку, а можно просто поместить файлы в корень диска Team.

Любые предложения будут с благодарностью.

1 Ответ

0 голосов
/ 04 сентября 2018

Установка parents для идентификатора Team Drive работает для меня и вставляет файл в корень Team Drive. Минимальный пример:

# media is a `MediaFileUpload` instance
service.files().create(
    supportsTeamDrives=True,
    media_body=media,
    body={
        'parents': ['0AILoX...'],  # ID of the Team Drive
        'name': 'foo.txt'
    }
).execute()

Вы уверены, что получили правильный ID?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...