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:
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
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.
Postar um comentário