So legen Sie das Stammverzeichnis in Apache Mina Sshd Server in Java fest
Ich benutzeApache Mina Sshd API, um einen lokalen SFTP-Server in Java zu starten. In SFTP-Client verwende ichJcraft jsch API, um meinen SFTP-Client zu erstellen. Ich starte erfolgreich einen Server. Das Problem ist, dass ich einige Unit-Testfälle schreiben möchte, um zu prüfen, ob der Client einige Dateien in das Stammverzeichnis des Servers kopieren kann. Derzeit hat mein SFTP-Server kein Stammverzeichnis. Ich würde gerne wissen, dass es eine Möglichkeit gibt, das Stammverzeichnis des Servers festzulegen.
Z.B:C: \ sftp Wie kann ich diesen Pfad als mein Server-Stammverzeichnis festlegen. So kann der Client jedes Mal, wenn er eine Verbindung zum Server herstellt, Dateien lesen und darauf schreiben.
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());
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");
}
}
}