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