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

Uso simple de Java para subir archivos a un servidor usando SFTP

Después de buscar información sobre la subida de archivos SFTP, hice un resumen para facilitar las consultas futuras. El código específico se muestra a continuación:

 /**
  * subir archivo al servidor
  * 
  * @param filePath
  *   ruta del archivo
  * @param channelSftp
  *   objeto 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;
   }
  }
   e.printStackTrace();
  }
   try {
    if (instream != null) {
     instream.close();
    }
    if (outstream != null) {
     outstream.close();
    }
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
  return successFlag;
 }
 private static Session initJschSession()
   lanza JSchException {
  int ftpPort = 0;
  String ftpHost = "";
  String port = "00"; //Puerto de SFTP
  String ftpUserName = ""; //Nombre de usuario
  String ftpPassword = ""; //Contraseña de la conexión
  String privateKey = ""; //
  String passphrase = "";
  if (port != null && !port.equals("")) {
   ftpPort = Integer.valueOf(port);
  }
  JSch jsch = new JSch(); // Crear objeto 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); // Obtener un objeto Session basado en el nombre de usuario, la ip del host y el puerto
  if (StringUtils.isNotBlank(ftpPassword)) {
   session.setPassword(ftpPassword); // Configurar contraseña
  }
  return session;
 }
 /**
  * Obtener conexión de ChannelSftp
  * 
  * @param timeout
  *   Tiempo de espera
  * @return Devuelve el objeto ChannelSftp
  * @throws JSchException
  */
 public static ChannelSftp getChannelSftp(Session session, int timeout)
   lanza JSchException {
  Channel channel = null;
  Properties config = new Properties();
  config.put("StrictHostKeyChecking", "no");
  session.setConfig(config); // Establecer propiedades para el objeto Session
  session.setTimeout(timeout); // Configurar tiempo de espera
  session.connect(); // Establecer el enlace a través de la sesión
  channel = session.openChannel("sftp"); // Abrir el canal SFTP
  channel.connect(); // Establecer la conexión del canal SFTP
  return (ChannelSftp) channel; 
 }
 /**
  * Desconectar el enlace SFTP
  * 
  * @param session
  *   Sesión
  * @param channel
  *   Canal
  */
 public static void closeConnection(Channel channel, Session session) {
  try {
   if (session != null) {
    session.disconnect(); //Cerrar la conexión de sesión
   }
   if (channel != null) {
    channel.disconnect(); //Desconectar la conexión
   }
  }
   e.printStackTrace();
  }
 }

Los nombres de usuario y contraseñas aquí son los que se han configurado ellos mismos, el método aquí se ha encapsulado de manera simple, lo que facilita su uso.

Lo que se menciona anteriormente es una introducción simple del uso de Java para subir archivos al servidor a través de SFTP por parte del editor, esperamos que sea útil para todos. Si tienen alguna pregunta, por favor déjenos un mensaje, el editor responderá a tiempo. ¡También agradecemos mucho el apoyo de todos a la página web de tutorial de clamor!

Declaración: El contenido de este artículo se ha obtenido de la red, es propiedad del autor original, el contenido se ha subido por los usuarios de Internet de manera autónoma, este sitio web no posee los derechos de propiedad, no se ha realizado un procesamiento editorial humano y no asume responsabilidades legales relacionadas. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#w. Le agradecemos sinceramente el apoyo de todos a la página web de tutorial de clamor!3Aviso: Este contenido se ha obtenido de la red, es propiedad del autor original, el contenido se ha subido por los usuarios de Internet de manera autónoma, este sitio web no posee los derechos de propiedad, no se ha realizado un procesamiento editorial humano y no asume responsabilidades legales relacionadas. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#w proporcionando evidencia relevante, una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción.

Te gustará