使用FileSystemProvider实现FTP文件系统

时间:2016-12-03 17:32:48

标签: java ftp nio watchservice jsr203

我开发了一个应用程序,可以使用Java java.nio.file.WatchService

检测文件系统中的更改

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

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

我现在使用的用例是扩展此应用程序以监视远程ftp服务器上的事件。具体来说,当检测到新文件(ENTRY_CREATE)事件时,获取该文件然后进行处理。

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

  1. 根据NIO.2 documentation
  2. 实施自定义FTP FileSystemProvider
  3. 为自定义FTP FileSystemProvider实现WatchService实现
  4. 总体而言,这种方法看起来是否合适?

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

    谢谢!

1 个答案:

答案 0 :(得分:1)

谷歌“Java ftp watchservice”,看看别人做了什么。

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

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

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