2015-04-12 138 views
2

如何从指定时间点(从最后一天开始说)获取所有硬盘更改的记录?Google云端硬盘更改历史记录

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

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

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

我已阅读了一些关于revisions的内容,因此从理论上讲,我将能够获得所有更改(如果我错了,请纠正我)。

有没有其他办法?

+0

+1为实际做自己的研究。但是你已经列出了所有可以做到这一点的方式,询问哪一个最好只会让你得到基于意见的答案。尝试自己测试一下,看看哪一个最适合你。 – DaImTo

回答

2

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

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

  1. 不知道你的用例,我的方法是获得所有文件(file.list)的列表,其中q ='modifiedDate> iso'。这或多或少等同于该时间点的更改ID后的更改列表。

  2. 然后对于每个文件,您可以执行revisions.list以获取所有修订。如果你想推导出这种变化(即两个版本之间的差异,你需要自己去做。)

  3. 同样,根据你要查找的信息,API API可能是什么样的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,然后列出change> changeID。

+0

感谢您的另一种方法,我只是测试活动API,它看起来很有前途。 – matoni

相关问题