首页 > 解决方案 > Python Google Drive API 未列出文件夹中的所有文件

问题描述

我正在编写的程序的一部分要求我列出 Google Drive 文件夹中的文件和文件夹。我目前正在使用以下代码:

page_token = None
while True:
    response = service.files().list(pageSize=1000,q="'folder_id' in parents",fields="nextPageToken, files(id, name)").execute()
    for file in response.get('files', []):
        print('Found file: %s (%s)' % (file.get('name'), file.get('id')))
    page_token = response.get('nextPageToken', None)
    if page_token is None:
        break

出于某种原因,我正在测试的一个文件夹仅返回一个文件,即使我添加了其他文件/文件夹,并且我尝试的每个其他父文件夹_id 都不会返回任何文件。我什至尝试删除正在返回的一个文件,当我再次调用该函数时它仍然会返回。

标签: pythongoogle-drive-apigoogle-api-python-client

解决方案


如果您使用的是代表服务的服务帐户,则:

  1. 为服务帐户启用域范围的委派。步骤和附加信息在这里。

  2. 启用域范围委派后,使用服务/webapp 与服务帐户的电子邮件地址服务帐户链接共享您要列出的所需文件夹,它类似于“XXX...XXX.iam.gserviceaccount.com”。


推荐阅读