Google云端硬盘正在监视新文件

Dav*_*d M 2 google-drive-api

我正在考虑使用Google云端硬盘推送通知来代替我们当前的提取流程。我开始玩它,但是有两个主要问题:

观察变化

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

观看文件

在查看文件更改时,如果是文件夹,我想知道添加到该文件夹​​的新文件,因此我希望在从该文件夹添加/删除文件时,“ x-goog-resource-state”将保留“添加/删除”值,而“ x-goog-changed”将包含“子项”。

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

关于已删除的文件,我知道可以通过查看文件来获取,但是有什么方法可以更新某个文件夹中的新文件?

小智 5

几个月前,我正在从事类似的项目。您可以执行以下两项操作来监视Google云端硬盘上的更改:

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

第一种情况向您发送请求,要求您监视要在驱动器上发生的所有事情,而很少有确切更改的信息。

第二种情况是较少的“垃圾邮件”,您可以决定监视哪个文件夹。

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

我的结论是:

对于在yourfolder(您的文件夹/ newfile)中创建的新文件(或文件夹),标题包含:'X-Goog-Changed':'properties''X-Goog-Resource-State':'update'

当您将文件移至文件夹时,或开始跟踪文件夹中的现有文件时,该操作相同。

与用户共享时,将得到“ X-Goog-Resource-State”:“ add”

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

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

如果您还有任何疑问,或者想知道如何实现代码,请告诉我:)