python - 是否有一种有效的方法可以在 Google Drive API 中查询所有用户的所有文件?
问题描述
我能完成这项工作的唯一方法是遍历所有用户并查询每个用户有权访问的所有文件。这会产生很多冗余结果,因为如果有一个在组织范围内共享的文件,它将为每个用户的每个查询返回。以这种方式返回组织内的所有文件大约需要 10 分钟。
这是我的代码的一个粗略示例:
gs_directory = build('admin', 'directory_v1', credentials=creds.with_subject("admin@mydomain.com"))
# Call the Admin SDK Directory API
results = gs_directory.users().list(domain = 'mydomain.com').execute()
users = results.get('users', [])
files = []
if not users:
print('No users in the domain.')
for user in users:
print(user["primaryEmail"])
gs_drive = build('drive', 'v3', credentials=creds.with_subject(user["primaryEmail"]))
# Call the Drive v3 API
results = gs_drive.files().list(corpora='user',
pageSize=10, fields="nextPageToken, files(id, name)").execute()
items = results.get('files', [])
while results.get('nextPageToken', None):
results = gs_drive.files().list(corpora='user', pageToken=results['nextPageToken'],
pageSize=10, fields="nextPageToken, files(id, name)").execute()
items += results.get('files', [])
for item in items:
print(u'{0} ({1})'.format(item['name'], item['id']))
解决方案
推荐阅读
- trace - 有什么方法可以在不重新编译的情况下支持 usdt 探针(用户级静态定义跟踪)?
- html - 如何在flex中为每个div均匀分配空间
- python - Python:删除第一个花括号之外的所有字符
- c# - 如何在 Visual Studio 中不打开浏览器运行 URL?
- shiny - Rstudio 服务器在部署 APP 时遇到问题
- android - 如果用户有双 sim 卡,则获取或设置选定的默认 sim 卡
- javascript - mouseup/down 整个 SPA 角度
- apache-kafka - Kafka 消费组清理
- kettle - 如何从 Pentaho 中的多个不同表创建 Fact 表
- keras - 如何在 Keras 中使用 h5 类型的预训练图像分类模型?