web-dev-qa-db-fra.com

comment transférer un fichier via SFTP en java?

Comment transférer un fichier via SFTP en java? Je veux un exemple de code pour le client SFTP. Je veux intégrer le serveur SFTP dans mon application et le client devrait pouvoir envoyer un fichier à mon application.

PS: Cela a été demandé pour le client SFTP. Et cette question n'est pas un double des deux autres questions.

Trouvez le lien ci-dessous pour implémenter SFTP.

https://codetransient.wordpress.com/2019/06/22/sftp-secured-file-transfer-protocol/

17

Essayez ce code.

public void send (String fileName) {
    String SFTPHOST = "Host:IP";
    int SFTPPORT = 22;
    String SFTPUSER = "username";
    String SFTPPASS = "password";
    String SFTPWORKINGDIR = "file/to/transfer";

    Session session = null;
    Channel channel = null;
    ChannelSftp channelSftp = null;
    System.out.println("preparing the Host information for sftp.");

    try {
        JSch jsch = new JSch();
        session = jsch.getSession(SFTPUSER, SFTPHOST, SFTPPORT);
        session.setPassword(SFTPPASS);
        Java.util.Properties config = new Java.util.Properties();
        config.put("StrictHostKeyChecking", "no");
        session.setConfig(config);
        session.connect();
        System.out.println("Host connected.");
        channel = session.openChannel("sftp");
        channel.connect();
        System.out.println("sftp channel opened and connected.");
        channelSftp = (ChannelSftp) channel;
        channelSftp.cd(SFTPWORKINGDIR);
        File f = new File(fileName);
        channelSftp.put(new FileInputStream(f), f.getName());
        log.info("File transfered successfully to Host.");
    } catch (Exception ex) {
        System.out.println("Exception found while tranfer the response.");
    } finally {
        channelSftp.exit();
        System.out.println("sftp Channel exited.");
        channel.disconnect();
        System.out.println("Channel disconnected.");
        session.disconnect();
        System.out.println("Host Session disconnected.");
    }
}   
62
Dhinakar