跟踪用户和共享云端硬盘的更改

对于需要跟踪云端硬盘中内容更改的 Google 云端硬盘应用,更改集合提供了一种检测更改的高效方法。该集合的工作原理是提供每个项的当前状态,前提是该项自给定时间点以来发生了变化。

Google 云端硬盘会为每个用户和共享云端硬盘保留一个更改日志。每个节点都有自己的记录,用于记录其感兴趣的项的更改。

如需跟踪用户可见的所有内容的更改,需要重放用户更新日志以及用户所属的所有共享云端硬盘的更新日志。

启用更改条目

更改条目表示文件或共享云端硬盘在给定时间点的状态。更改不会提供修订版本之间的差异。需要知道哪些属性已更改的应用应保留该项之前已知的状态并进行比较。

由于更改代表项的当前状态,因此单个更改条目可能会失效,并替换为相应项的较新更改条目。

Tombstone

对于用户无法再访问的内容,其更改条目会在更改条目中标记为 deleted。更改条目中仅包含商品的 ID。

跟踪共享云端硬盘

每个共享云端硬盘都有自己的更改日志。即使用户可能是共享云端硬盘的成员,某些更改也只会反映在共享云端硬盘更改日志中,而不会反映在用户的更改日志中。如果文件属于共享云端硬盘,即使该文件在过去某个时间点仍出现在用户的更新日志中,仅重放用户的更新日志也不会正确更新文件的状态。您必须重放共享云端硬盘的更改日志,才能捕获所有更改。

用户的更改日志中包含哪些内容

用户的更改日志包含对用户所属共享云端硬盘的更改,以及对用户语料库中文件的更改。如需详细了解语料库,请参阅更改和修订版本概览。

以下共享云端硬盘更改会显示在用户的更改日志中:

  • 用户成为共享云端硬盘的成员。
  • 用户不再是共享云端硬盘的成员。
  • 用户所属的共享云端硬盘发生了直接相关的更改,例如:
    • 用户对该共享云端硬盘的访问权限级别发生了变化。
    • 共享云端硬盘即会重命名。

当用户成为共享云端硬盘的成员时,该共享云端硬盘的单个更改事件会显示在用户的更新日志中。这意味着可以访问共享云端硬盘中的所有内容。用户成为成员后,不会收到共享云端硬盘中包含的内容的更改。

共享云端硬盘的成员可能会根据其使用情况看到共享云端硬盘中内容的更改事件。不过,如果用户是共享云端硬盘的成员,应用不应依赖这些事件。而是使用共享云端硬盘的更改日志来跟踪更改。

如果非成员获得了对共享云端硬盘中个别内容的访问权限,则这些内容的更改会记录在用户的更改日志中。这与直接与用户共享的非共享云端硬盘内容相同。

共享云端硬盘更新日志中显示的更改

如果用户是共享云端硬盘的成员,则可以访问该共享云端硬盘的更改日志,其中包含:

  • 对共享云端硬盘本身所做的任何更改,例如添加或移除成员
  • 直接更改共享云端硬盘中包含的内容。

同步权限和功能

当共享云端硬盘或共享云端硬盘中的内容权限发生变化时,云端硬盘会遍历文件夹层次结构,以更新继承该变化的所有直接和间接子项的有效权限。更新日志会为修改后的项和每个受影响的下级项分别记录一个条目。客户端应用会从 changes.list 接收各个更新日志条目,无需手动传播功能或重新提取子项。