Я использую древовидную программу просмотра на основе содержимого файла Google Team Drive;для этого я следую приведенному здесь совету: Как выполнить поиск в подпапках и подпапках на Google Диске? , т. е. сделать 2 вызова API - один, чтобы получить всепапки, а другой - для получения всех файлов, которые являются непосредственными дочерними элементами этих папок.
Однако я заметил, что вызов для получения всех папок не возвращает все из них:
res = service.files().list(
corpora='teamDrive',
pageSize=1000,
supportsTeamDrives=True,
includeTeamDriveItems=True,
teamDriveId=TEAM_DRIVE_ID,
fields='files(id,parents,name,mimeType)',
q="mimeType='application/vnd.google-apps.folder' and trashed=false"
).execute()
len(res['files'])
# 460
Здесь файлы не должны превышать pageSize
, но я определенно пропускаю заметное количество папок из этого результата, например, определенную с идентификатором specified_id
:
len([x for x in res['files'] if x['id'] == specified_id])
# 0
Я не думаю, что это проблема с разрешениями, так как я могу получить этот файл обычным образом:
specific_file = service.files().get(
fileId=specified_id,
supportsTeamDrives=True,
).execute()
specific_file
{'id': '...',
'kind': 'drive#file',
'mimeType': 'application/vnd.google-apps.folder',
'name': '...',
'teamDriveId': '...'}
Любые другие советы о других вещах, которые нужно попробовать, чтобы достичь цели получения всехпапки на диске Google (Team) в одном запросе API.