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(); } }
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!