我正在考虑使用 Google Drive 推送通知来取代我们当前的拉取流程。
我开始玩它,但我有两个主要问题:
观察变化:
当监视驱动器更改时,我会收到包含新更改 ID 的通知。但是当我尝试使用driveService.changes().get(changeId)查询它时,我间歇性地得到404。我在这里做错了什么吗?
观看文件:
当监视文件更改时,如果是文件夹,我想了解添加到该文件夹的新文件,因此我希望从该文件夹添加/删除文件时,“x-goog-resource-state”将保留“添加/删除”值,而“x-goog-changed”将包含“孩子”。
实际上,“x-goog-changed”确实包含“children”,但“x-goog-resource-state”始终是“update”,并且没有有关添加/删除文件的额外信息。
关于已删除的文件,我知道一旦拥有该文件就可以通过观看该文件来获取它,但是有没有办法可以更新某个文件夹中的新文件?
几个月前我正在做一个类似的项目。您可以执行以下两种操作来监控 Google 云端硬盘上的更改:
- 使用以下命令设置通知推送:changes().watch()
- 使用以下命令设置通知推送:files().watch()
第一种情况向您发送一个请求,询问您正在监视的驱动器上发生的所有情况,但关于到底发生了什么变化的信息很少。
第二种情况是“垃圾邮件”较少,您可以决定要监视哪个文件夹。
但是,更改类型上的标签并不准确。当我使用 files().watch() 时,我测试了所有用例,并比较了每个用例的标题。
我的结论是:
对于在 yourfolder (yourfolder/newfile) 内创建新文件(或文件夹),标头包含:
“X-Goog-Changed”:“属性”
'X-Goog-资源状态': '更新'
当您将文件移动到文件夹中或开始关注文件夹中的现有文件时,这都是一样的。
当您与用户共享时,您会得到 'X-Goog-Resource-State': 'add'
如您所见,标题标签不准确/唯一。
另请注意,推送通知通道不会向您发送对您的文件夹内的文件夹(您的文件夹/文件夹/文件)内的文件的请求。并且该通道将在某个时候到期。
如果您还有任何疑问,或者想知道如何实现代码,请告诉我:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)