English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Utilisation simple de l'upload de fichier SFTP sur le serveur avec Java

Après avoir cherché un peu de documentation sur l'upload de fichiers SFTP, j'ai fait quelques notes pour les recherches futures. Voici le code en question :

 /**
  * Télécharger le fichier sur le serveur
  * 
  * @param filePath
  *   Chemin du fichier
  * @param channelSftp
  *   Objet channelSftp
  * @return
  */
 public static boolean uploadFile(String filePath, ChannelSftp channelSftp) {
  OutputStream outstream = null;
  InputStream instream = null;
  boolean successFlag = false;
  try {
   File isfile = new File(filePath);
   if (isfile.isFile()) {
    outstream = channelSftp.put(isfile.getName());
    File file = new File(filePath);
    if (file.exists()) {
     instream = new FileInputStream(file);
     byte b[] = new byte[1024];
     int n;
     while ((n = instream.read(b)) != -1) {
      outstream.write(b, 0, n);
     }
     outstream.flush();
    }
    successFlag = true;
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
   try {
    if (instream != null) {
     instream.close();
    }
    if (outstream != null) {
     outstream.close();
    }
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
  return successFlag;
 }
 private static Session initJschSession()
   throws JSchException {
  int ftpPort = 0;
  String ftpHost = "";
  String port = "00"; //Port de connexion SFTP
  String ftpUserName = ""; //Nom d'utilisateur
  String ftpPassword = ""; //Mot de passe de connexion
  String privateKey = ""; //
  String passphrase = "";
  if (port != null && !port.equals("")) {
   ftpPort = Integer.valueOf(port);
  }
  JSch jsch = new JSch(); // Créer un objet JSch
  if (StringUtils.isNotBlank(privateKey)
    && StringUtils.isNotBlank(passphrase)) {
   jsch.addIdentity(privateKey, passphrase);
  }
  if (StringUtils.isNotBlank(privateKey)
    && StringUtils.isBlank(passphrase)) {
   jsch.addIdentity(privateKey);
  }
  jsch.getSession(ftpUserName, ftpHost, ftpPort);
  Session session = jsch.getSession(ftpUserName, ftpHost, ftpPort); // Obtenir un objet Session en fonction du nom d'utilisateur, de l'IP du hôte et du port
  if (StringUtils.isNotBlank(ftpPassword)) {
   session.setPassword(ftpPassword); // Définir le mot de passe
  }
  return session;
 }
 /**
  * Obtenir une connexion ChannelSftp
  * 
  * @param timeout
  *   Temps d'attente d'expiration
  * @return Retourner l'objet ChannelSftp
  * @throws JSchException
  */
 public static ChannelSftp getChannelSftp(Session session, int timeout)
   throws JSchException {
  Channel channel = null;
  Properties config = new Properties();
  config.put("StrictHostKeyChecking", "no");
  session.setConfig(config); // Définir les propriétés de l'objet Session
  session.setTimeout(timeout); // Définir le temps d'attente de timeout
  session.connect(); // Établir la connexion via la session
  channel = session.openChannel("sftp"); // Ouvrir le canal SFTP
  channel.connect(); // Établir la connexion du canal SFTP
  return (ChannelSftp) channel; 
 }
 /**
  * Couper le lien SFTP
  * 
  * @param session
  *   Session
  * @param channel
  *   Canal
  */
 public static void closeConnection(Channel channel, Session session) {
  try {
   if (session != null) {
    session.disconnect(); //Fermez la connexion de session
   }
   if (channel != null) {
    channel.disconnect(); //Couper la connexion
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

Les noms d'utilisateur et mots de passe ici sont tous configurés par vous-même, la méthode ici a été encapsulée de manière simple, ce qui est pratique à utiliser.

Les méthodes de téléchargement de fichiers SFTP sur le serveur en utilisant Java que l'éditeur vous présente ici sont simples, espérons que cela vous sera utile. Si vous avez des questions, laissez un message, l'éditeur vous répondra à temps. Merci également de votre soutien au site de tutoriels de cri de la voix !

Déclaration : Le contenu ci-dessus est présenté par l'éditeur pour vous, espérons que cela vous sera utile. Si vous avez des questions, n'hésitez pas à laisser un message, l'éditeur vous répondra à temps. Merci également de votre soutien au site de tutoriels de cri de la voix !3Déclaration : Le contenu de cet article est tiré du réseau, la propriété intellectuelle appartient au propriétaire original, le contenu est apporté par les utilisateurs d'Internet, ce site Web ne détient pas de propriété, n'a pas été traité par l'éditeur humain et n'assume pas la responsabilité juridique. Si vous trouvez du contenu soupçonné de contrefaçon, veuillez envoyer un e-mail à : notice#w pour signaler, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu suspect de violation des droits d'auteur.

Vous pourriez aussi aimer