Загрузить файл в папку Teamdrive на Google-диске с помощью PyDrive - PullRequest
0 голосов
/ 12 ноября 2018

Я успешно загружаю файлы в папку google-drive с помощью PyDrive.Но когда дело доходит до загрузки файлов в папку в папке google-drive-teamdrive-folder, которой я поделился, следующий код не работает.

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

gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)


location_to_save = "D:\images"
mImageLoc =  location_to_save + "\\abcd.jpg"

#[...Code to fetch and save the file as abcd.jpg ...]

gfolder_id = "1H1gjBKcpiHJtnXKVxWQEC1CS8t4Gswjj"  #This is a google drive folder id. I am replacing this with a teamdrive folder id, but that does not work
gfile_title = mImageLoc.split("\\")[-1] # returns abcd.jpg

http = gdrive.auth.Get_Http_Object()
f = gdrive.CreateFile({"parents": [{"kind": "drive#fileLink", "id": gfolder_id}],
                                   'title': gfile_title})
            f.SetContentFile(mImageLoc)
            f.Upload(param={"http": http})

Я получаю сообщение об ошибке:pydrive.files.ApiRequestError: <HttpError 404 when requesting https://www.googleapis.com/upload/drive/v2/files?alt=json&uploadType=resumable returned "File not found: 0AG-N4DqGC1nbUk9PVA"> '0AG-N4DqGC1nbUk9PVA' - это идентификатор папки teamdrive здесь.

Я искал средства для загрузки файлов в Teamdrive с помощью PyDrive, но тщетно.На страницах gydub pydrive я вижу, что они добавили поддержку teamdrive примерно 8 месяцев назад.Но я не могу найти документацию о том, как использовать это.Кто-нибудь может подсказать, где я ошибаюсь, пожалуйста?

1 Ответ

0 голосов
/ 08 марта 2019

Для загрузки попробуйте создать файл с именем "settings.yaml" и сохранить его в своем рабочем каталоге, следуя инструкциям здесь: https://pythonhosted.org/PyDrive/oauth.html

Вам понадобится идентификатор клиента и секрет клиента, найденные в файле client_secrets.json, который также должен находиться в вашем каталоге после авторизованного доступа к API Google.

Протестируйте его с помощью следующего кода, чтобы создать текстовый файл в папке на командном диске:

parent_folder_id = 'YYYY'

f = drive.CreateFile({
    'title': 'test.txt',
    'parents': [{
        'kind': 'drive#fileLink',
        'teamDriveId': team_drive_id,
        'id': parent_folder_id
    }]
})
f.SetContentString('Hello World')

f.Upload(param={'supportsTeamDrives': True})

# where XXXX and YYYY are the team drive and target folder ids found from the end of the URLS when you open them in your browser.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...