1

我开发了一个应用程序,它使用 Java 检测文件系统中的变化java.nio.file.WatchService

这在为默认文件系统设置 WatchService 时非常有用:

watchService = FileSystems.getDefault().newWatchService();

我现在的用例是扩展这个应用程序来监控远程 ftp 服务器上的事件。具体来说,当检测到新文件 (ENTRY_CREATE) 事件时,获取文件然后处理它。

研究这个我相信这是方法:

  1. 根据NIO.2 文档实现自定义 FTP FileSystemProvider
  2. 为自定义 FTP FileSystemProvider 实现 WatchService 实现

总的来说,这种方法看起来对吗?

其次,任何指向教程或实现的链接都会非常有帮助。

谢谢!

4

1 回答 1

1

谷歌“Java ftp watchservice”看看其他人做了什么。

例如,参见https://github.com/fge/java7-fs-ftp

注意,watchservice 最终需要轮询远程服务器。另请注意,FTP 不允许您查找文件(与 HTTP 范围功能不同),因此如果有人以非顺序顺序从文件中请求块,它将不会顺利进行。

可以实现代理服务器并检测代理的其他用户所做的更改而无需轮询。或者,如果您操作 FTP 服务器站点,您可以实现直接在远程文件系统上运行提供通知的 FTP 服务器。

于 2016-12-03T18:45:39.867 回答