当前位置: 首页 > 知识库问答 >
问题:

直接下载SFTP文件到远程服务器文件夹(不是共享路径)

江阳冰
2023-03-14

我想开发一个Java程序,把一个文件从SFTP服务器下载到远程服务器。该远程服务器没有任何共享路径。我必须直接从sftp下载并粘贴到远程windows服务器驱动程序(D:)中。

代码:

 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个答案

卓云
2023-03-14

您的代码需要直接在远程服务器上运行,并将文件从SFTP下载到其本地磁盘。

另一种方法是使用您的代码在本地机器上下载文件,然后使用类似SCP的东西在远程服务器上传输文件,如果您确实没有任何共享文件夹。

scp /path/to/your/file user@host:/remote/path

但您说,这是Windows,所以您可能需要首先在那台机器上设置SSH/SCP。

 类似资料:
  • 本文向大家介绍服务器共享文件夹设置软件、文件共享服务器软件和共享文件夹加密工具的选择,包括了服务器共享文件夹设置软件、文件共享服务器软件和共享文件夹加密工具的选择的使用技巧和注意事项,需要的朋友参考一下     当前,很多企业都在局域网搭建了文件服务器,用于共享文件供局域网用户访问使用,并且很多共享文件都是单位积累的无形资产和商业机密,如何在允许员工访问服务器共享文件的同时还能保证服务器的安全呢?

  • 本文向大家介绍服务器共享文件夹设置软件、局域网共享文件夹加密工具、文件共享服务器软件的选择,包括了服务器共享文件夹设置软件、局域网共享文件夹加密工具、文件共享服务器软件的选择的使用技巧和注意事项,需要的朋友参考一下     当前,很多企业都在局域网搭建了文件服务器,用于共享文件供局域网用户访问使用,并且很多共享文件都是单位积累的无形资产和商业机密,如何在允许员工访问服务器共享文件的同时还能保证服务

  • 我需要创建一个 Servlet,它提供来自外部服务器的文件并将其发送给用户。 因为我不希望servlet成为“中间人”,所以我需要它来服务文件,而不会将其预先传输给自己,然后重新提交给用户以解决性能问题(否则每次下载至少需要2倍它需要的时间-不谈论这些服务器之间的速度瓶颈。 这有可能吗? 谢谢!

  • 我想上传一个文件到不同的服务器使用卷曲。我读过许多类似的问题,但我没有得到任何解决我的问题。下面是我现在得到的代码: 当我运行此脚本时,它将保持运行200秒,并以以下方式响应: Sep 17 20:56:58 xxxxx vsftpd[2613]:[user]确定登录:客户端“yyyyy” Sep 17 20:56:58 xxxxx vsftpd[2618]:[用户]FTP响应:客户端“YYYYY

  • 我如何下载到我的笔记本电脑通过终端使用“wget”或python或任何相关的东西。

  • 问题内容: 我正在使用jsch从服务器下载文件,下面是我的代码。 com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2629) at com.jcraft.jsch.ChannelSftp._get(ChannelSftp.java:977) at com.jcraft.jsch.ChannelSftp.get(Channe