Páginas

4 de abril de 2011

Ssh e Ftp com Java utilizando J2SSH

Para fazer comunicação Ssh e FTP com Java é um tanto sofrível, visto que uma das bibliotecas mais famosas, o JFTP, não superou as minhas expectativas.

Uma alternativa é o J2SSH. Embora sua documentação seja péssima, encapsulei uma comunicação completa com SSH e FTP utilizando esta biblioteca e disponibilizei no Github. Seu uso final seria muito simples e da seguinte forma:
SshConnectionHolder sshConnection = SshConnectionFactory.createSshConnection(server, user, password);
String remoteDirectory = "/path-remote-dir";
File localFile = new File("/path-local-dir", "fileName");

// Enviando arquivo via SFTP
sshConnection.sendFileViaSFTP(localFile, remoteDirectory);

// Executando comando remoto via SSH        
String cmd = "ls";
String response = sshConnection.execCommandAndGetResponse(cmd);

// Download via SFTP        
sshConnection.getFileViaSFTP(remoteDirectory, localFile.getName(), localFile);

// Removendo arquivo remoto via SFTP
sshConnection.removeFileViaSFTP(localFile.getName(), remoteDirectory);

sshConnection.disconnect();
Mais detalhes sobre o projeto, ele está completamente disponível no meu Github, para que possa ser constantemente melhorado.

2 comentários:

Anônimo disse...

Estou fazendo algumas implementações no código para deixá-lo dentro de um projeto web. Assim que tiver pronto envio para voce. Parabéns.
Paulo Cezar
pauloc.martins@hotmail.com

Julio Leme Programer disse...

Leandro, realmente excepcional seu trabalho. Voce comentando, ninguem imagina o tanto que remou pra descobrir a melhor forma de se realizar estes posts e gets de arquivos. Eu mesmo ralei para chegar à sua conclusão, mas você trouxe à comunidade uma solução show de bola, elegante, sucinta e o mais importante: eficaz. Parabéns.