Bearbeiten: Ich werde meine vorherige Antwort beibehalten, da JSch immer noch an vielen Stellen verwendet wird, aber wenn Sie eine besser dokumentierte Bibliothek benötigen, können Sie sshj . Ein Beispiel dafür, wie man es für sftp verwendet, ist :
SSHClient ssh = new SSHClient();
ssh.loadKnownHosts();
ssh.connect("host");
try {
ssh.authPassword("username", "password");
SFTPClient sftp = ssh.newSFTPClient();
try {
sftp.put(new FileSystemFile("/path/of/local/file"), "/path/of/ftp/file");
} finally {
sftp.close();
}
} finally {
ssh.disconnect();
}
Verwendung von JSch (eine Java-SH-Lib, die z.B. von Ant verwendet wird), könnte man so etwas machen:
Session session = null;
Channel channel = null;
try {
JSch ssh = new JSch();
ssh.setKnownHosts("/path/of/known_hosts/file");
session = ssh.getSession("username", "host", 22);
session.setPassword("password");
session.connect();
channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftp = (ChannelSftp) channel;
sftp.put("/path/of/local/file", "/path/of/ftp/file");
} catch (JSchException e) {
e.printStackTrace();
} catch (SftpException e) {
e.printStackTrace();
} finally {
if (channel != null) {
channel.disconnect();
}
if (session != null) {
session.disconnect();
}
}
Sie können JSch direkt auf diese Weise verwenden oder über Commons VFS , aber dann müssen Sie sowohl das commons vfs jar als auch das jsch jar haben.
2 Stimmen
de.wikipedia.org/wiki/SSH_File_Transfer_Protocol
3 Stimmen
Bitte verwenden Sie den Begriff "SFTP", wenn Sie das meinen. Zwischen FTP, SFTP/SSH, FTPS und dem Tunneln von regulärem FTP über SSH werden die Akronyme zweideutig.
0 Stimmen
Den Text für sftp bearbeitet
0 Stimmen
Siehe auch Wie kann ich eine Datei von einem Server über SFTP abrufen?