Heim >Java >javaLernprogramm >Wie kann ich mit Java Dateien von einem SFTP-Server abrufen?
Abrufen von Dateien über SFTP in Java
Secure File Transfer Protocol (SFTP) ist ein sicheres Dateiübertragungsprotokoll, das sichere Dateiübertragungen über eine ermöglicht SSH-Verbindung. Dies steht im Gegensatz zu anderen Protokollen wie FTPS, die TLS/SSL über eine Standard-TCP-Verbindung verwenden.
Um eine Datei von einem Server über SFTP mit Java abzurufen, können Sie die JSch-Bibliothek verwenden. JSch wird aufgrund seiner robusten Funktionen und der benutzerfreundlichen Oberfläche häufig von Projekten wie Eclipse, Ant und Apache Commons HttpClient verwendet.
Es unterstützt Benutzer-/Pass- und zertifikatbasierte Anmeldungen und bietet zahlreiche SSH2-Funktionen. Hier ist ein einfaches Codebeispiel, mit dem Sie eine Remote-Datei über SFTP abrufen können:
import com.jcraft.jsch.*; public class SftpFileRetriever { public static void main(String[] args) throws JSchException { JSch jsch = new JSch(); String knownHostsFilename = "/home/username/.ssh/known_hosts"; jsch.setKnownHosts(knownHostsFilename); Session session = jsch.getSession("remote-username", "remote-host"); { // Interactive version // This version allows you to selectively update specified known_hosts file. // You'll need to implement the UserInfo interface, and MyUserInfo is a swing implementation provided in JSch's Sftp.java example. UserInfo ui = new MyUserInfo(); session.setUserInfo(ui); // Non-interactive version // This version relies on the host key being in the known-hosts file. // session.setPassword("remote-password"); } session.connect(); Channel channel = session.openChannel("sftp"); channel.connect(); ChannelSftp sftpChannel = (ChannelSftp) channel; sftpChannel.get("remote-file", "local-file"); sftpChannel.exit(); session.disconnect(); } }
Dieser Code richtet eine SSH-Sitzung ein, richtet die bekannten Hosts ein und stellt eine Verbindung zum Kanal her. Anschließend wird die Remotedatei abgerufen und die Sitzung getrennt. Fehlerbehandlung und spezifische Details zu Benutzerinteraktionen bleiben Ihnen als Übung überlassen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Java Dateien von einem SFTP-Server abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!