Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine Google Drive SDK推送通知-监视所有文件上的更改?_Google App Engine_Google Drive Api_Google Apps - Fatal编程技术网

Google app engine Google Drive SDK推送通知-监视所有文件上的更改?

Google app engine Google Drive SDK推送通知-监视所有文件上的更改?,google-app-engine,google-drive-api,google-apps,Google App Engine,Google Drive Api,Google Apps,最近推出的推送通知服务非常酷,看起来比以前需要的轮询有了很大的改进 我想知道如何启用监视驱动器上共享文件夹中的所有文件。我们正在开发一个驱动器监控工具,它可以保存所有更改的列表,并支持整个企业驱动器文件夹的报告 我知道我可以在变更提要中使用关于新对象的通知。不幸的是,您无法检测“更改”资源中的更改内容 在查看文件资源时,您可以收到通知,说明文件发生了哪些更改(父级、权限、元数据等)。这很好,但似乎不可能为驱动器中的所有文件注册推送通知处理程序。文档中说您总是需要提供fileId。这意味着在我们的

最近推出的推送通知服务非常酷,看起来比以前需要的轮询有了很大的改进

我想知道如何启用监视驱动器上共享文件夹中的所有文件。我们正在开发一个驱动器监控工具,它可以保存所有更改的列表,并支持整个企业驱动器文件夹的报告

我知道我可以在变更提要中使用关于新对象的通知。不幸的是,您无法检测“更改”资源中的更改内容

在查看文件资源时,您可以收到通知,说明文件发生了哪些更改(父级、权限、元数据等)。这很好,但似乎不可能为驱动器中的所有文件注册推送通知处理程序。文档中说您总是需要提供
fileId
。这意味着在我们的场景中会对数百万个文件发出监视请求(更不用说不时更新推送API通道)

您知道有什么比使用更改通知更合适的方法吗?
并检测手动更改的内容(这是相当多的API调用,执行起来相当慢)。

长话短说,没有

目前推送通知仅支持监视文件和更改。您可能知道,Google Drive中的文件夹是具有特殊mimeType的文件。也就是说,您可以通过向文件夹发出Files.watch()请求来监视特定文件夹。然而,它只会告诉您其直接子对象中的更改,而不是递归地,这可能不是您想要的

您可以采取的最佳方法是将所有文件的元数据复制到应用程序中,并在发生任何更改时进行比较。我知道这不是很有效,但就目前而言,这是实现这一目标的唯一途径


如果你问我你想要的功能是否会被创建,不太可能。推送通知不仅仅适用于驱动器API。它是为所有谷歌API设计的,可以监视任何API资源并检测它们的变化。基本上,当您发出Files.Watch()请求时,它会保留Files.get()结果的副本,并在有任何更改时通知您。这就是为什么Files.watch有更多有用的细节的原因。对于更改,当Changes.list()中有更改时,它会告诉您。因此,它不能告诉您任何比资源当前可以做的更改更好的事情。从其设计来看,我认为您想要的功能不会添加到驱动API中。

非常感谢您的反馈。这就是我所担心的。没关系,我们会坚持自己检测变化。