google-drive-api - Google 云端硬盘更改历史记录

标签 google-drive-api

如何获取从指定时间点(比如说从最后一天开始)的所有驱动器更改的历史记录?

Reports API - Drive Activity Reports似乎是最好的,但这些仅适用于 Google Apps Unlimited accounts

我知道,也可以用 push notifications 来完成,但我正在寻找其他方法,因此我可以选择最好的方法。

我已经尝试过Drive.Changes.List但它只为每个文件返回一个 Change 实例,因此,如果我在时间 t1 和时间 t2 编辑文件,然后列出所有更改,它将仅返回 文件的最后更改 (t2)。

我已经阅读了一些关于可以列出的修订的内容,因此理论上,我将能够获得所有更改(如果我错了,请纠正我)。

还有别的办法吗?

最佳答案

出于不同的目的,更改和修订是不同的事情。

要回答“如何获取从指定时间点(比如说从最后一天开始)的所有驱动器更改的历史记录?”,您可能需要两者的组合。

  1. 不知道您的用例,我的方法是获取带有 q='modifiedDate > iso' 的所有文件 (file.list) 的列表。这或多或少相当于该时间点的更改 ID 之后的更改列表。

  2. 然后,对于每个文件,您可以执行 revisions.list 来获取所有修订版本。如果您想导出更改(即两个修订版之间的差异),您需要自己执行此操作。

  3. 同样,根据您要查找的信息,事件 API https://developers.google.com/google-apps/activity/v1/reference/activities/list可能就是您正在寻找的。因此,您可以为第 1 步中的每个 fileID 调用该方法。

注意。在第 1 步中,使用“fields”将输出修剪为 nextPageToken、items/id 和 items/modifiedDate,否则您将淹没在数据中。

作为步骤 1 的替代方案,您可以使用某种 cron 作业,每小时执行一次 about.get 来获取当前 ChangeID、添加时间戳并将其存储在某处。然后,第 1 步变为,获取相关时间戳的适当的changeId,然后列出更改 > 该changeID。

关于google-drive-api - Google 云端硬盘更改历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29596050/

相关文章:

javascript - 我编写了一个 Nodejs 应用程序来操作 Google Sheets。如何将其转换为附加组件?

php - 如何读取上传到 Google Drive 的 PDF 文件的内容?

java - 无法使用 Google Drive API 获取所有文件的列表

google-drive-api - 使用 .NET 客户端库上传大于 ~10MB 的文件时 Google Drive 上传失败

java - 从 Java 替换 Google 文档中的文本

javascript - Google Picker API DocsUploadView setIncludeFolders 不起作用

node.js - 从 Drive API v3 下载图像不断会出现损坏的图像。我应该如何解码 promise 的响应?

google-docs-api - Google 云端硬盘中基于关键字的搜索/查询?

ios - 适用于 iOS 的 Google 云端硬盘 SDK : issue with queries

python - 什么云存储服务允许开发者使用免费 API 上传/下载文件?