2013-03-22 164 views
1

我想從SFTP服務器下載文件到本地機器使用JSch。無論文件大小如何,它只下載16371字節的數據並結束傳輸。它不會拋出任何異常。如果文件小於16371字節,它將被順利轉移,但對於任何較大的文件,傳輸都會導致損壞的文件。JSch SFTP文件下載

+1

我想你需要在這裏顯示一些代碼... – Lucas 2013-03-22 20:20:29

+0

我剛剛實例化了ChannelSftp對象並調用get方法。它適用於較小的文件,但在傳輸16371字節後停止。 – user1544745 2013-03-22 20:29:02

+0

你可以調出JSch對象的日誌級別,看看是否有東西跳出來了嗎? – Lucas 2013-03-22 20:43:39

回答

0

我有一個特殊的sftp服務器相同的問題。我的獨特解決方案是使用LFTP,這是一個用於自動化SFTP任務的linux命令。如果你有一個Linux環境,它非常有用。

PHP示例: $ command = set net:timeout 30;液晶$ directorioDestino; cd/Usr/companies/cdrusr357901/CallCenterRecords /; mget {$ prefijoArchivosAuris} *; bye lftp -u {$ this-> user},{$ this-> password} -e'$ command'sftp:// {$ this-> host}

1

其實我設法解決了這個問題。我換成:

SftpProgressMonitor monitor = new MySftpProgressMonitor(); 
    channelSftp.get(sourceFile, destFile, monitor); 

有:

channelSftp.get(sourceFile, destFile); 

刪除進度監控傳輸是sucesfull後。我猜這是Jsch裏面的一個bug。