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

Uso simples de Java para upload de arquivos para o servidor via SFTP

Após encontrar algumas informações sobre o upload de arquivos SFTP, fiz uma breve小结 para facilitar as consultas futuras. O código específico é como segue:

 /**
  * Enviar arquivo para o servidor
  * 
  * @param filePath
  *   caminho do arquivo
  * @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()
   throws JSchException {
  int ftpPort = 0;
  String ftpHost = "";
  String port = "00"; //Porta do SFTP
  String ftpUserName = ""; //Nome de usuário
  String ftpPassword = ""; //Senha da conexão
  String privateKey = ""; //
  String passphrase = "";
  if (port != null && !port.equals("")) {
   ftpPort = Integer.valueOf(port);
  }
  JSch jsch = new JSch(); // Criar 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); // Obter um objeto Session com base no nome de usuário, IP do host e porta
  if (StringUtils.isNotBlank(ftpPassword)) {
   session.setPassword(ftpPassword); // Definir a senha
  }
  return session;
 }
 /**
  * Obter a conexão ChannelSftp
  * 
  * @param timeout
  *   Tempo de timeout
  * @return Retornar o objeto 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); // Definir propriedades do objeto Session
  session.setTimeout(timeout); // Definir o tempo de timeout
  session.connect(); // Estabelecer a conexão através da sessão
  channel = session.openChannel("sftp"); // Abrir o canal SFTP
  channel.connect(); // Estabelecer a conexão do canal SFTP
  return (ChannelSftp) channel; 
 }
 /**
  * Desconectar o link SFTP
  * 
  * @param session
  *   Sessão
  * @param channel
  *   Canal
  */
 public static void closeConnection(Channel channel, Session session) {
  try {
   if (session != null) {
    session.disconnect(); //Fechar a conexão da sessão
   }
   if (channel != null) {
    channel.disconnect(); //Desconectar a conexão
   }
  }
   e.printStackTrace();
  }
 }

Os nomes de usuário e senhas aqui são definidos por você mesmo. Este método foi encapsulado de maneira simples para facilitar o uso.

O que está descrito acima é um tutorial simples sobre como usar o Java para fazer upload de arquivos para o servidor via SFTP, espero que ajude a todos. Se você tiver alguma dúvida, por favor, deixe um comentário aqui. Eu responderei às perguntas o mais rápido possível. Também agradeço pelo apoio ao site Tutorial de Grito!

Declaração: O conteúdo deste artigo foi extraído da internet, pertence ao respectivo proprietário, foi contribuído e carregado voluntariamente pelos usuários da internet, este site não possui direitos autorais, não foi editado manualmente e não assume responsabilidade legal. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie um e-mail para: notice#w para denunciar. Se você tiver qualquer dúvida, por favor, deixe um comentário aqui. Eu responderi às perguntas o mais rápido possível. Agradeço também pelo apoio ao site Tutorial de Grito!3Aviso: Este conteúdo foi extraído da internet, pertence ao respectivo proprietário, foi carregado voluntariamente pelos usuários da internet, este site não possui direitos autorais, não foi editado manualmente e não assume responsabilidade legal. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie um e-mail para: notice#w para denunciar, e forneça provas relevantes. Se confirmado, o conteúdo suspeito será imediatamente removido deste site.

Você também pode gostar