2016-12-03 2 views
1

ich eine App entwickelt, die für das Standard-Dateisystem Dies funktioniert gut, wenn die Einrichtung java.nio.file.WatchServiceFileSystemProvider Mit Hilfe eines FTP-Dateisystem implementieren

eine WatchService Änderungen in einem Dateisystem mit Hilfe von Java erkennt:

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

Der Anwendungsfall, den ich jetzt habe, ist diese App zu erweitern, um Ereignisse auf einem Remote-FTP-Server zu überwachen. Insbesondere wenn ein neues Dateiereignis (ENTRY_CREATE) erkannt wird, rufen Sie die Datei ab und verarbeiten Sie sie anschließend.

dieses Researching Ich glaube, dies ist der Ansatz:

  1. Implementieren eines benutzerdefinierten FTP FileSystemProvider per NIO.2 documentation
  2. Implementieren einer WatchService Implementierung für die benutzerdefinierte FTP FileSystemProvider

Insgesamt ist dieser Ansatz schau richtig?

Zweitens wären alle Links zu Tutorials oder Implementierungen sehr hilfreich.

Danke!

Antwort

1

Google "Java ftp watchservice" zu sehen, was andere getan haben.

Zum Beispiel https://github.com/fge/java7-fs-ftp

Hinweis sehen, die watchservice müssen Abfrage des Remote-Server beenden. Beachten Sie außerdem, dass Sie mit FTP nicht in eine Datei suchen können (im Gegensatz zur HTTP-Bereichsfunktion). Wenn also jemand in einer nicht sequenziellen Reihenfolge nach Abschnitten aus der Datei fragt, wird dies nicht reibungslos funktionieren.

Sie könnte implementieren einen Proxy-Server und erkennen Änderungen von anderen Benutzern des Proxy ohne Abfragen gemacht. Oder, wenn Sie die FTP-Server-Site betreiben, könnten Sie einen FTP-Server implementieren, der direkt auf dem Remote-Dateisystem lief und bereitgestellten Benachrichtigungen.

Verwandte Themen