Google云端硬盘 - 更改:列表API - 检测文件夹级别的更改

时间:2012-10-29 20:46:25

标签: google-drive-api

我正在测试Google云端硬盘'更改'API并提出一些问题。

期望: 我在“我的驱动器”下的文件夹树结构中包含文件。我想调用Changes:list API来检测是否在该特定文件夹ID中添加/编辑/删除了项目。

API Explorer尝试了:https://developers.google.com/drive/v2/reference/changes/list

问题:

  1. 我没有看到任何选项将特定文件夹ID传递给此API以获取'largestChangeId'。看起来这个api不支持parm'q'?有可能吗?

  2. 作为替代解决方案,考虑存储该文件夹的'modifiedDate'属性并将其用于下次比较。但是,当在该文件夹中更新项目时,它不会更新。如果文件夹修改日期在其内容更新时更新,那么它是否应该像在Windows中那样工作?

  3. 想听听是否可以检测文件夹级别的更改。

    由于

    [编辑]

    有效的解决方案:

    1. 使用文件:列表列出所有。 选中的字段:items / id,items / modifiedDate,items / parents / id,items / title

    2. 获取起始文件夹ID(例如使用标题搜索'MyRootFolder')

    3. 使用递归数组搜索遍历子树结构(链接父节点:id和文件ID)并获取max modifiedDate和总文件计数。
    4. 在应用存储空间中存储最大modifiedDate和文件计数。
    5. 对于后续调用,将新的最大modifiedDate与存储的内容进行比较,并将总文件计数与存储的内容进行比较。如果其中任何一个不匹配,则“MyRootFolder”中的内容已更新。

2 个答案:

答案 0 :(得分:2)

目前无法直接使用API​​ - 抱歉!

我认为目前最好的解决方案是使用常规更改Feed并将代码中的结果过滤为具有正确父项集的结果。

答案 1 :(得分:2)

drive.changes.list google drive API现在允许用户传递“startChangeId”参数。

我使用我从前面的API结果获得的“largestChangeId”值,因此我可以逐步构建用户完成的更改,从而无需重建整个树。

我怎么会惊讶地发现为什么他们不支持“includeDeleted”参数和“startChangeId”参数。