我的情况是:
我正在使用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 /

最佳答案

在进一步研究问题之后,我想出了解决方案
我需要一个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
  }

关于java - 使用ChannelSftp.get的输入流时,ChannelSftp.put方法被卡住,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39877083/

10-10 15:18