2016-12-14 580 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那台机器上。

相关问题