【问题标题】:Google Drive changes historyGoogle 云端硬盘更改历史记录
【发布时间】:2015-04-12 23:56:01
【问题描述】:

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

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

我知道,push notifications也可以,但我正在寻找其他方法,所以我可以选择最好的。

我尝试过Drive.Changes.List,但它只为每个文件返回一个Change 实例,所以如果我在时间t1 和时间t2 编辑文件,然后列出所有更改,它将只返回last change of file (t2)。

我已经阅读了一些关于 revisions 的内容,可以列出,所以理论上,我可以进行所有更改(如果我错了,请纠正我)。

还有其他方法吗?

【问题讨论】:

  • +1 用于实际进行自己的研究。但是您已经列出了所有可以做到这一点的方法,询问哪种方法最好只会让您得到基于意见的答案。尝试自己进行测试,看看哪一个最适合您。

标签: google-drive-api


【解决方案1】:

更改和修订是用于不同目的的不同事物。

要回答“我怎样才能获得从指定时间点(比如说从前一天开始)的所有驱动器更改的历史记录?”,您可能需要将两者结合起来。

  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 步,使用“字段”将输出修剪为 nextPageToken、items/id 和 items/modifiedDate,否则您将淹没在数据中。

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

【讨论】:

  • 感谢另一种方法,我只是在测试活动 api,它看起来很有希望。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-02
相关资源
最近更新 更多