簡體   English   中英

JSCH SFTP文件傳輸-文件中的數據已損壞

[英]JSCH SFTP file transfer - Data in the file is getting corrupted

在Java中使用JSCH傳輸文件時遇到問題。 文件中的數據已損壞,並且這種情況是間歇性發生的。 我的意思是有時文件正確上載,並且大多數情況下我們注意到文件大小大於5 MB時數據已損壞。

該程序在不同情況下的行為有所不同。

Windows-10 :程序在所有大小的文件上都可以正常運行而不會出現問題。

Unix :程序適合2 MB以下的文件。 但是對於大於2 MB的文件,有時文件可以正確上傳,但是大多數時候我們看到數據已損壞。

我仍然沒有得到導致數據損壞的原因? 我不認為代碼有問題,因為程序可以在Windows環境中正常工作,有時在Unix環境中也可以。

程序讀取數據並將其寫入遠程服務器的方式有任何問題,或者我在這里缺少任何其他內容? 請幫忙。

public boolean putFile(String report, String user, String password, String location, 
      String folder) throws Exception {

    boolean status=true;
    JSch shell = new JSch();
    Session session = null;
    session = shell.getSession(user, location, 22);
    session.setPassword(password);
    session.setConfig("StrictHostKeyChecking", "no");
    session.connect();
    Channel channel = null;
    channel = session.openChannel("shell");
    channel.setInputStream(null);
    channel.setOutputStream(null);
    channel = session.openChannel("sftp");
    channel.connect();
    ChannelSftp sftp = (ChannelSftp) channel;
    sftp.cd(folder);
    File outputFile = new File(report);
    FileInputStream fileInputStream = new FileInputStream(outputFile);
    sftp.put(fileInputStream, outputFile.getName());
    session.disconnect();
    return status;
}

我們正在使用的jsch版本中存在一個錯誤。 通讀jsch版本的更改日志,並更新版本。 那解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM