Maison > Java > javaDidacticiel > Comment puis-je récupérer des fichiers d'un serveur SFTP à l'aide de Java ?

Comment puis-je récupérer des fichiers d'un serveur SFTP à l'aide de Java ?

DDD
Libérer: 2024-12-03 17:48:10
original
167 Les gens l'ont consulté

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

Récupération de fichiers via SFTP en Java

Secure File Transfer Protocol (SFTP) est un protocole de transfert de fichiers sécurisé qui fournit des transferts de fichiers sécurisés sur un Connexion SSH. Cela contraste avec d'autres protocoles comme FTPS qui utilisent TLS/SSL sur une connexion TCP standard.

Pour récupérer un fichier d'un serveur via SFTP à l'aide de Java, vous pouvez utiliser la bibliothèque JSch. JSch est largement utilisé par des projets comme Eclipse, Ant et Apache Commons HttpClient en raison de ses fonctionnalités robustes et de son interface conviviale.

Il prend en charge les connexions basées sur les utilisateurs/passes et les certificats et offre de nombreuses fonctionnalités SSH2. Voici un exemple de code de base que vous pouvez utiliser pour récupérer un fichier distant via SFTP :

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();
    }
}
Copier après la connexion

Ce code établit une session SSH, configure les hôtes connus et se connecte au canal. Ensuite, il récupère le fichier distant et déconnecte la session. La gestion des erreurs et les détails spécifiques des interactions des utilisateurs sont laissés sous forme d'exercice à compléter.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal