Python Google Drive API 未列出文件夹中的所有文件



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

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

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

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

  1. 为服务帐号启用网域范围的委派。 步骤和其他信息在这里。

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

  1. 检查服务帐户是否有权读取文件夹
  2. 如果文件夹位于共享云端硬盘中,请将includeItemsFromAllDrives=TruesupportsAllDrives=True添加到列表方法的参数中
response = service.files().list(pageSize=1000,q="'folder_id' in parents",fields="nextPageToken, files(id, name)",includeItemsFromAllDrives=True, supportsAllDrives=True).execute()

您可以在此处阅读更多详细信息

最新更新