Transfert de fichiers SFTP utilisant Java JSch
Voici mon code, qui récupère le contenu du fichier, sur le serveur distant et l'affiche en sortie.
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);
}
}
}
maintenant comment implémenter ce programme que le fichier est copié dans le localhost et comment copier un fichier de localhost vers le serveur.
ici comment faire fonctionner le transfert de fichiers pour tout format de fichiers.
22
demandé sur
Martin Prikryl
2013-02-27 13:50:17
3 réponses
la façon la plus triviale de télécharger un fichier sur SFTP avec JSch est:
JSch jsch = new JSch();
Session session = jsch.getSession(user, host);
session.setPassword(password);
session.connect();
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
sftpChannel.put("C:/source/local/path/file.zip", "/target/remote/path/file.zip");
de même pour un téléchargement:
sftpChannel.get("/source/remote/path/file.zip", "C:/target/local/path/file.zip");
vous pouvez avoir besoin de traiter avec UnknownHostKey
exception .
8
répondu
Martin Prikryl
2017-11-03 08:54:31
Utilisation:
sftp("file:/C:/home/file.txt", "ssh://user:pass@host/home");
sftp("ssh://user:pass@host/home/file.txt", "file:/C:/home");
6
répondu
Mykhaylo Adamovych
2017-05-23 12:10:01
ci-dessous le code fonctionne pour moi
public static void sftpsript(String filepath) {
try {
String user ="demouser"; // username for remote host
String password ="demo123"; // password of the remote host
String host = "demo.net"; // remote host address
JSch jsch = new JSch();
Session session = jsch.getSession(user, host);
session.setPassword(password);
session.connect();
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
sftpChannel.put("I:/demo/myOutFile.txt", "/tmp/QA_Auto/myOutFile.zip");
sftpChannel.disconnect();
session.disconnect();
}catch(Exception ex){
ex.printStackTrace();
}
}
1
répondu
Shubham Jain
2018-09-03 17:17:49