Pessoal, boa tarde!
Preciso implementar um esquema para copiar arquivos de um servidor para uma pasta local sem intervenções de usuarios, como são arquivos grandes e o FTP da muitos problemas me mandaram fazer em SCP, alguem pode me dar uma direção de onde começar, o que é necessario.
Obrigado,
Boa tarde Danilo…
Cara, no google…‘java scp’…trouxe um monte de resultados…
o que eu achei mais interessante e completo foi esse do Koders…
dá uma olhada:
http://www.koders.com/java/fidEEC07F855084DD01762BFD8A21A8D613FA0AC0D4.aspx
t+
Cara ja fiz algo muito parecido,de uma olhada nesse API(commons-net-1.4.1.jar) ok.Segue um exemplo espero que lhe ajude:
[code]
public class FtpTeste {
public static void main(String[] args) {
FTPClient ftp = new FTPClient();
boolean saida =false;
try {
ftp = new FTPClient();
ftp.connect(“10.1.1.1”, 21);
ftp.login(“anonymous”, “anonymous”);
int reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
System.out.println(“Conexao recusada pelo servidor”);
ftp.disconnect();
}
if (ftp.isConnected()) {
System.out.println("Usuario conectado no servidor FTP");
/* Porta do Servidos */
/* Seta para receber dados binarios */
ftp.setFileType(FTP.BINARY_FILE_TYPE);
/* Escolhe o diretorio do Servidor */
ftp.changeWorkingDirectory("/pub/Planta_Externa");
/*Mostra todos os arquivos do diretorio atual*/
String[] arquivos = ftp.listNames();
//Mostra os Arquivos da Pasta
for (int i = 0; i < arquivos.length; i++) {
System.out.println(arquivos[i]);
}
/*Seta o nome do arquivo temp*/
String strArquivo = "ARQUIVO.XLS";
/*Seta o local para guardar o arquivo temp*/
String strFilePath = "c:\temp"+ "\" + strArquivo ;
/*Instancia um file*/
File folderDest = new File(strFilePath);
/*Instancia o arquivo de saida*/
OutputStream output = new FileOutputStream( folderDest);
saida = ftp.retrieveFile(strArquivo,output);
output.close();
}
ftp.disconnect();
if(saida){
System.out.println("SUCESSO");
}
}
catch (Exception e) {
System.out.println("Ocorreu um erro: " + e);
System.exit(1);
}
}
}
[/code][/code]
Cara ja fiz algo muito parecido,de uma olhada nesse API(commons-net-1.4.1.jar) ok.Segue um exemplo espero que lhe ajude:
public class FtpTeste {
public static void main(String[] args) {
FTPClient ftp = new FTPClient();
boolean saida =false;
try {
ftp = new FTPClient();
ftp.connect("10.1.1.1", 21);
ftp.login("anonymous", "anonymous");
int reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
System.out.println("Conexao recusada pelo servidor");
ftp.disconnect();
}
if (ftp.isConnected()) {
System.out.println("Usuario conectado no servidor FTP");
/* Porta do Servidos */
/* Seta para receber dados binarios */
ftp.setFileType(FTP.BINARY_FILE_TYPE);
/* Escolhe o diretorio do Servidor */
ftp.changeWorkingDirectory("/pub/Planta_Externa");
/*Mostra todos os arquivos do diretorio atual*/
String[] arquivos = ftp.listNames();
//Mostra os Arquivos da Pasta
for (int i = 0; i < arquivos.length; i++) {
System.out.println(arquivos[i]);
}
/*Seta o nome do arquivo temp*/
String strArquivo = "ARQUIVO.XLS";
/*Seta o local para guardar o arquivo temp*/
String strFilePath = "c:\temp"+ "\" + strArquivo ;
/*Instancia um file*/
File folderDest = new File(strFilePath);
/*Instancia o arquivo de saida*/
OutputStream output = new FileOutputStream( folderDest);
saida = ftp.retrieveFile(strArquivo,output);
output.close();
}
ftp.disconnect();
if(saida){
System.out.println("SUCESSO");
}
}
catch (Exception e) {
System.out.println("Ocorreu um erro: " + e);
System.exit(1);
}
}
}