获取 Google Team Drive 中的元素数量

Get the number of elements in a Google Team Drive

Google 团队驱动器有 400 000 个文件的限制,我想知道有多少元素已上传到特定驱动器,以便获得组织管理员可以从 https://admin.google.com.

我找不到这个值的任何 API 端点,有没有办法计算这个限制?

答案:

没有端点可以为您提供此信息,因此您必须对每个驱动器进行 files: list 调用并在本地进行计算。

示例:

首先,您需要调用 drives: list 以获得您所属的所有共享驱动器的列表:

curl \
  'https://www.googleapis.com/drive/v3/drives
    ?fields=drives%2Fid
    &key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --compressed

此处,字段drives/id仅用于获取ID列表。

然后您可以使用 files: list 遍历每个 ID 以获取该驱动器中的文件列表:

curl \
  'https://www.googleapis.com/drive/v3/files
    ?corpora=drive
    &driveId=[YOUR_DRIVE_ID]
    &includeItemsFromAllDrives=true
    &pageSize=1000
    &supportsAllDrives=true
    &key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --compressed

在此响应中,您可能会得到一个 nextPageToken 参数。这意味着云端硬盘中有超过 1000 个文件,因此您将需要发出包含此页面令牌的后续请求,直到您收到没有一个的响应:

curl \
  'https://www.googleapis.com/drive/v3/files
    ?corpora=drive
    &driveId=[YOUR_DRIVE_ID] &includeItemsFromAllDrives=true
    &pageSize=1000
    &pageToken=[NEXT_PAGE_TOKEN]
    &supportsAllDrives=true
    &key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --compressed

确保计算每个请求返回结果的总数。

根据每个共享驱动器中的文件数量,您可以从数学上计算每个驱动器使用的文件总数的百分比:

(no_of_files_in_drive / 400000) * 100

功能请求:

但是,您可以让 Google 知道这是一个对于访问他们的 API 很重要的功能,并且您希望请求他们实现它。

Google 的 Issue Tracker is a place for developers to report issues and make feature requests for their development services, I'd urge you to make a feature request there. The best component to file this under would be the Google Drive component,使用 Feature Request 模板。

参考文献: