Google Drive API 无法查看共享文件夹中的文件

Bij*_*jan 0 python python-3.x google-drive-api

我已创建一个服务帐户,并让该帐户 (XXXX@XXXX.iam.gserviceaccount.com) 成为共享云端硬盘中的管理员。

我可以通过运行检索共享文件夹 IDservice.drives().list(pageSize=10).execute()

但如果我跑:

folder_id = '0ACNaJE1nx6YwXXXXXXX' # Same folder ID as above
query = "'%s' in parents" % folder_id
response = service.files().list(q=query, spaces='drive', fields='files(id, name, parents)').execute()
Run Code Online (Sandbox Code Playgroud)

{'files': []}即使共享文件夹包含一些文件,它也会返回。我究竟做错了什么?

Tan*_*ike 6

我相信您的目标和目前的情况如下。

  • 您想要使用 python 的 googleapis 从共享云端硬盘中的特定文件夹中检索文件列表。
  • service的脚本具有从共享驱动器检索文件列表的权限。

那么,在Drive API的files.list方法的查询参数中包含includeItemsFromAllDrives=True,supportsAllDrives=True和怎么样?corpora="allDrives"当你的脚本被修改后,它会变成如下所示。

修改后的脚本:

folder_id = '0ACNaJE1nx6YwXXXXXXX' # Same folder ID as above
query = "'%s' in parents" % folder_id
response = service.files().list(q=query, pageSize=1000, includeItemsFromAllDrives=True, supportsAllDrives=True, corpora="allDrives", fields='files(id, name, parents)').execute()
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 在此修改后的脚本中,它假设您具有从共享驱动器检索文件元数据的权限。请小心这一点。

参考: