Google云端硬盘正在关注新文件

时间:2014-10-23 13:55:37

标签: google-drive-api

我正在考虑使用Google Drive推送通知来取代我们目前的拉动过程。 我开始玩它,但我有两个主要问题:

观看更改

在查看驱动器更改时,我会收到包含新更改ID的通知。但是当我尝试使用:driveService.changes()。get(changeId)来查询它时,我间歇性地得到404.我在这里做错了吗?

观看文件

当观察文件更改时,如果是文件夹,我想知道添加到该文件夹​​的新文件,所以我希望在添加/删除此文件夹中的文件时,“x-goog-resource-state”将保留“添加/删除”值,而“x-goog-changed”将包含“children”。

实际上,“x-goog-changed”确实包含“children”,但“x-goog-resource-state”总是“更新”,并且没有关于添加/删除文件的额外信息。

关于已删除的文件,我知道可以通过查看文件获得它,但有没有办法可以更新某个文件夹中的新文件?

1 个答案:

答案 0 :(得分:4)

几个月前我正在做一个类似的项目。您可以采取两项措施来监控Google云端硬盘的变化:

  1. 使用:changes()。watch()
  2. 设置通知推送
  3. 使用:files()。watch()
  4. 设置通知推送

    第一种情况向您发送请求,告知您正在监控的云端硬盘上发生的所有事情,并且几乎没有关于确切更改的信息。

    第二种情况不那么垃圾邮件',您可以决定要监控哪个文件夹。

    但是更改类型上的标签不准确。当我使用files()。watch()时,我测试了所有用例,并比较了每个案例的标题。

    我的结论是:

    在yourfolder(yourfolder / newfile)中创建新文件(或文件夹),标题包含: ' X-Goog-Changed':'属性' ' X-Goog-Resource-State':'更新'

    将文件移动到文件夹或开始关注文件夹中的现有文件时也是如此。

    你得到了X-Goog-Resource-State':'添加'与用户分享时

    如您所见,标题标记不准确/唯一。

    另请注意,推送通知频道不会向您发送文件夹内的文件请求(您的文件夹/文件夹/文件)。该频道将在某个时候到期。

    如果您仍有任何疑问或想知道如何实施代码,请告诉我们:)