使用ChannelSftp.get的输入流时,ChannelSftp.put方法会卡住

时间:2016-10-05 14:43:12

标签: java sftp jsch


我的情况是:
我使用 Jsch lib(v - 0.1.54),使用 SFTP
一切都有效,除非我尝试使用 sftpChannel.put()方法,它上传文件但过程卡住了

代码:

public static void moveFiles() {
    //some code
     try {
           InputStream fis =  sftpChannel.get(currentDirectory+"/"+fileName);

           sftpChannel.put(fis, fileName,  ChannelSftp.RESUME);//"freezes here, no exception is thrown

           fis.close();
         } catch(Exception e){
            e.printStackTrace();
         }
    //some other code
}

我已经检查过是否已经有任何其他问题,例如我所面临的问题,但是没有解决方案(显然)

Same issue

提前致谢o /

1 个答案:

答案 0 :(得分:3)

在进一步挖掘问题之后,我想出了解决方案 我需要一个ChannelSftp来获取文件,另一个ChannelSftp需要使用put

  public static void moveFiles() {
      //some code
    ChannelSftp sftpChannel = getChannel();
    ChannelSftp sftpChannelDownload = getChannel();
     try {
        InputStream fis = sftpChannelDownload.get(currentDirectory+"/"+fileName);
        sftpChannel.put(fis, fileName);
    }  catch(Exception e){
        e.printStackTrace();
    }
    //more code
  }