Handhabung eingehender Dateien in Apache Mina SSHD SFTP Server in Java

erzeit arbeite ich an einem SFTP-Protokoll. Ich habe einen SFTP-Client mit der Jsch Library und einem SFTP-Server mit der Apache Mina Sshd-Bibliothek erstellt. Ich habe eine Verbindung zwischen ihnen hergestellt und kann erfolgreich Dateien an den SFTP-Server senden. Jetzt arbeite ich an der Erstellung eines SFTP serverseitiger Datei-Handler, der die eingehenden Dateien verarbeitet. Zum Beispiel kann der SFTP-Server Dateien vom SFTP-Client empfangen, aber derzeit kann ich in meiner Implementierung nicht benachrichtigen, wann die Datei auf dem Server eingegangen ist. Ich gehe einfach zum Server-Stammordner und überprüfe, ob Es sind Dateien verfügbar. So weiß ich, ob Dateien angekommen sind.

Ich möchte implementieren, dass, wenn Dateien auf dem Server ankommen, der Benutzer benachrichtigt wird, dass Dateien angekommen sind und der Inhalt der Dateien (Dateiname und andere Details). Das Problem ist jedoch, dass ich neu bei Apache Mina sshd API.i bin Dokumentation, aber ich konnte es nicht herausfinden.

Bitte ich möchte wissen, ob es bereits implementierte Listener für die Verarbeitung eingehender Dateien auf dem Apache Mina Sshd-Server gibt oder wie ich meinen eigenen Listener für eingehende Dateien implementieren kann.

SFTP Server Code

public class SftpServerStarter {

    private SshServer sshd;
    private final static Logger logger = LoggerFactory.getLogger(SftpServerStarter.class);

    public void start(){


        sshd = SshServer.setUpDefaultServer();
        sshd.setPort(22);
        sshd.setHost("localhost");

        sshd.setPasswordAuthenticator(new MyPasswordAuthenticator());
        sshd.setPublickeyAuthenticator(new MyPublickeyAuthenticator());
        sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider());
        sshd.setSubsystemFactories(Arrays.<NamedFactory<Command>>asList(new SftpSubsystem.Factory()));
        sshd.setCommandFactory(new ScpCommandFactory());
        sshd.setFileSystemFactory(new VirtualFileSystemFactory("C:/root"));


        try {
            logger.info("Starting ...");
            sshd.start();
            logger.info("Started");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            logger.info("Can not Start Server");
        }
    }

}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage