2016-12-14 9 views
0

Я хочу разработать программу java для загрузки файла с сервера SFTP на удаленный сервер. У этого удаленного сервера нет общего пути. Мне нужно напрямую загрузить с sftp и вставить удаленный драйвер сервера Windows (D :).Загрузите файл SFTP в папку удаленного сервера напрямую (не для общего пути)

код:

int ftpPort = 22; 

    JSch jsch = new JSch (); 
     Session session = null; 
     Channel channel = null; 
     ChannelSftp c = null; 

     try { 

     session = jsch.getSession(username, hostname, ftpPort); 
     logger.info("*** FTP Session created. ***"); 
     session.setPassword(password); 

     Properties config = new Properties(); 
     config.put("StrictHostKeyChecking", "no"); 
     session.setConfig(config); 
     session.connect(); 
     logger.info("*** Session connected. ***"); 

     //Open the SFTP channel 
     logger.info("*** Opening FTP Channel. ***"); 
     channel = session.openChannel("sftp"); 
     channel.connect(); 
     c = (ChannelSftp) channel; 

     //Change to the remote directory 
     logger.info("*** Changing to FTP remote dir: " + remoteDirectory + " ***"); 
     c.cd(remoteDirectory); 

     //Send the file we generated 
     try { 
       logger.info("*** Storing file:'" + filename + "' to local directory: '"+localDirectory+"'"); 

Я использую JSch и ChannelSftp для подключения к серверу SFTP.

На данный момент приведенный выше код загружает код на локальный путь и общий путь.

Любое предложение загрузить файлы на удаленный сервер (windows), который не имеет общего пути.

Спасибо.

ответ

1

Ваш код должен запускаться непосредственно на удаленном сервере и загружать файлы из SFTP на локальный диск.

Другим способом было бы загрузить файл на вашем локальном компьютере, используя ваш код, а затем использовать что-то вроде SCP для передачи файла на удаленном сервере, если у вас действительно нет общих папок.

scp /path/to/your/file [email protected]:/remote/path 

Но вы сказали, что это Windows, поэтому сначала вам нужно настроить SSH/SCP на этой машине.