Я вижу только файлы, созданные с помощью моего скрипта pydrive

#python #google-drive-api #pydrive

#python #google-drive-api #pydrive

Вопрос:

Как следует из названия, у меня проблема с pydrive. Я выполнил код, указанный в быстром запуске pydrive (https://googleworkspace.github.io/PyDrive/docs/build/html/quickstart.html ) и я создал файл настроек и учетных данных, чтобы не вводить свои учетные данные постоянно. Но когда я запускаю этот код:

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

# Rename the downloaded JSON file to client_secrets.json
# The client_secrets.json file needs to be in the same directory as the script.
gauth = GoogleAuth()
drive = GoogleDrive(gauth)

# List files in Google Drive
fileList = drive.ListFile().GetList()
for drive_file in fileList:
    print('title: %s, id: %s' % (drive_file['title'], drive_file['id']))

 

Я вижу только файлы, созданные с помощью моего скрипта. Например, если я добавлю это перед файлом списка:

 folder = drive.ListFile({'q': "title = 'Python_test' and trashed=false"}).GetList()[0] # get the folder we just created

file = drive.CreateFile({'title': "test.txt", 'parents': [{'id': folder['id']}]})
file.Upload()
 

Я вижу только папку и идентификатор файла, который я только что создал… И если я добавлю файл вручную на свой диск (например, в моем браузере), он не появится.

У кого-нибудь есть представление о том, что происходит?

Комментарии:

1. у вас есть код для GoogleAuth? какую область он запрашивает?

2. @DaImTo, черт возьми, это была просто проблема с запросом области видимости, спасибо! (Я добавил неправильный oauth_scope в свой файл настроек)

Ответ №1:

Я только что нашел проблему, она была в моих настройках.файл yaml, я добавил только этот oauth_scope:

 oauth_scope:
  - https://www.googleapis.com/auth/drive.file
 

но это дает доступ только к файлам, созданным приложением. Чтобы исправить это, мне нужно было удалить .файл, подобный этому

 oauth_scope:
  - https://www.googleapis.com/auth/drive
 

Если вы хотите получить более подробную информацию о различных областях, проверьте эту ссылку:
https://developers.google.com/identity/protocols/oauth2/scopes