FSEvents远程服务器卷的目录观察器/仅适用于本地启动的更改,而不适用于远程更新?

时间:2017-09-20 14:17:40

标签: cocoa filesystems fsevents san

情境:

我正在使用FSEvents成功监控本地监视文件夹。

使用相同的FSEVents代码来监视来自远程服务器的已装入卷中的目录,例如,AFS(/ Volumes / example)成功通知我的FSEVents回调本地客户端更改的任何文件,但不会通过其他机器上的其他用户 - 即使我确实看到这些更改立即反映在Finder中。

继承我的FSEvents实施:DirectoryWatcher.m

我期待发生的事情:

Finder看到的任何更新,我的FSEVent工具或任何其他适当的API都会检测到这些更改并通知我的应用。当任何用户进行更改时,他们会出现在任何其他用户Finder中,而我的应用程序会通知回调更改。

实际发生的事情:

客户端计算机Bob安装卷'示例'来自Alice的服务器

Bob对“示例”中的任何子目录进行了更改,并且bob的文件观察器应用程序(我的应用:))立即通知更改。耶!

现在Fred登录到Alices服务器并安装'示例'音量,并进行更改。弗雷德被通知 - 耶。鲍勃不是。嘘。此外,Fred不会通知Bob所做的更改。嘘声。

此外,如果Alice直接在服务器上进行更改,Fred和Bob都没有触发FSEvents - 即使在所有情况下,Finder都会立即知道更改并在更改时更新文件列表和图标。

问题:

  • 任何人都有关于远程服务器上的文件系统事件通知的指示?除了这个问题,FSEvents几乎是完美的。轮询是唯一的选择吗?

  • 我认为AFS / SMB协议已为发生更改的客户端提供了通知工具 - 但这些更改不在文件系统级别,并且此FSEVents不知道。 IE:Finder知道因为它被分配到协议事件流中,而不仅仅是文件系统事件流?

  • 如果没有投票,这是否可行?

注意,我正在测试10.13到10.11。

谢谢!

0 个答案:

没有答案