Heim >Java >javaLernprogramm >Wie kann ich mit Java Dateien von einem SFTP-Server abrufen?

Wie kann ich mit Java Dateien von einem SFTP-Server abrufen?

DDD
DDDOriginal
2024-12-03 17:48:10167Durchsuche

How Can I Retrieve Files from an SFTP Server Using Java?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn