【问题标题】:Google Drive API "watch"ing a folder, how to know what file was addedGoogle Drive API“监视”文件夹,如何知道添加了什么文件
【发布时间】:2015-10-21 04:26:59
【问题描述】:

我有一个正在运行的测试端点,当我将一个文件放入监视文件夹时,我收到一个标题为 X-Goog-Resource-State: update 的请求,但我似乎没有得到添加文件的 ID。

  • 我收到了 X-Goog-Resource-Id,我认为这可能是新文件,但如果我尝试 get() 它会收到 404
  • 我收到 X-Goog-Resource-Uri,但它属于监视文件夹
  • 我收到了一个X-Goog-Channel-Id,但这显然属于频道而不是文件
  • 还有X-Request-Id,但这只是一个不透明的 UUID

我是否需要在每次更新时获取受监视文件夹的完整文件列表并与保存的列表进行比较?这感觉不对,但我不知所措。

任何指导将不胜感激。

【问题讨论】:

  • 根据文档,“更新”意味着文件夹 - 本身 - 已更新(不是文件夹的添加)。否则,您应该得到一个“添加”事件。端点还应该收到一个 X-Goog-Changed 标头,指示资源的哪一部分已更新。
  • 感谢您的链接,将其添加到我的文档列表中。但我没有收到add 事件,只有update。有一个 X-Goog-Changed 标头指示 children,但没有标识孩子

标签: google-api google-drive-api


【解决方案1】:

今天有什么更好的方法吗?搜索 Drive API Docs 后,它似乎没有改变。

如果它没有改变,我会提出另一个想法。我最终可能会创建 2 个文件夹,一个用于新项目,一个用于已处理项目。我会查看 New Items 文件夹,收到通知后,我会处理文件夹中的所有文件并将它们移动到 Processed Items 文件夹。只是个人偏好,但我不希望更改文件的属性或以任何方式修改它们,我会有点偏执,如果我在创建时得到它们,我会多次处理一些文件或者不知何故有人会在这里或那里被排除在外。

如果能够接收添加文件的通知(包括其 ID),那就太好了!

【讨论】:

  • 据我所知,没有任何改变。在他们修复/添加它之前,我们几乎都放弃了这个功能,因为观看 整个 Drive for all 更改只是丢弃其中的 98% 太麻烦了。跨度>
  • 22/02/2021:没有任何改变。
【解决方案2】:

我遇到了同样的情况,最终在watch channeltoken 字段中传递了监视的文件夹(文件)ID。当事件发生时,我会获取该文件夹中包含的文件列表。我不需要与任何其他列表进行比较,因为所有新文件都不归我的默认帐户所有,因此很容易找到,但在您的情况下,您可以在最后几秒/分钟内创建 search for files 或使用 @ 987654323@ 用于所有已处理的文件并搜索所有缺少该属性的文件。

【讨论】:

  • 我认为您无法搜索“没有属性”的文件。如果可能的话,您可以分享这样的查询吗?我认为您只能搜索“具有该私有财产的特定价值”的文件。
  • @vajanko,我想你可以(抱歉,我不能再轻易测试它了)。我会尝试类似 not appProperties has 'you property name' 之类的东西。以下是查询文件的示例:developers.google.com/drive/api/v3/…。查看表格末尾的 appProperties 术语。
  • 感谢您的建议。我已经试过了。查询必须具有此格式属性有 { key = 'property_name' and value = 'property_value' }。其他格式属性有 { key = 'property_name' } 是不允许的,API 返回错误。属性也有 { key = 'property_name' 和 value = NULL } 和其他变体是无效的。
  • 您是否设法使诸如“NOT { key = 'property_name' and value = 'property_value' }”之类的东西起作用?如果是这样,您可以将值设置为特定于所有已处理文件的值。
  • 没错。最后我完全按照你的建议做了。但就我而言,这不是一个很好的解决方案。无论如何,谢谢你的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多