Oto mój kod, który pobiera zawartość pliku na serwerze zdalnym i wyświetla jako wynik.Przesyłanie plików SFTP za pomocą Java JSch
package sshexample;
import com.jcraft.jsch.*;
import java.io.*;
public class SSHexample
{
public static void main(String[] args)
{
String user = "user";
String password = "password";
String host = "192.168.100.103";
int port=22;
String remoteFile="sample.txt";
try
{
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
System.out.println("Establishing Connection...");
session.connect();
System.out.println("Connection established.");
System.out.println("Creating SFTP Channel.");
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
System.out.println("SFTP Channel created.");
InputStream out= null;
out= sftpChannel.get(remoteFile);
BufferedReader br = new BufferedReader(new InputStreamReader(out));
String line;
while ((line = br.readLine()) != null)
{
System.out.println(line);
}
br.close();
sftpChannel.disconnect();
session.disconnect();
}
catch(JSchException | SftpException | IOException e)
{
System.out.println(e);
}
}
}
Teraz, jak zaimplementować ten program, aby plik został skopiowany w localhost i jak skopiować plik z localhost na serwer.
Tutaj można wykonać transfer plików do dowolnego formatu plików.
Podałem przykład jak to zrobić z serwera lokalnego do zdalnej instancji AWS EC2 tutaj http://stackoverflow.com/a/16626635/311525 – Scott
Jeśli szukasz transferu plików między serwerem lokalnym i zdalnym, te linki powinny być pomocne - [upload pliku] (http://kodehelp.com/java-program-for-uploading-file-to-sftp-server/), [pobieranie pliku] (http://kodehelp.com/ java-program-for-download-file-from-sftp-server /) –