jsch - 如何增加 jsch 缓冲区大小?

标签 jsch

我正在使用 jsch 进行 sftp 文件传输。当我通过设置缓冲区大小 512(-B 选项)sftp B 512 [sftp 服务器名称] 并调用 put 命令使用 sftp 命令发送文件时,我可以以 8.0MBPS 的速度传输文件。 (常规速度为 3.0MBPS)。

当我在 java 中使用 jsch api 进行相同的文件传输时,我只能获得 2.6MBPS。是否有任何选项可以增加 jsch 中的缓冲区大小或提高 jsch 的速度?

这是我的代码...

Channel channel = null;
ChannelSftp channelSftp = null;
log("preparing the host information for sftp.");
try {
    JSch jsch = new JSch();

    session = jsch.getSession(username, hostname, port);
    session.setPassword(password);
    java.util.Properties config = new java.util.Properties();
    config.put("StrictHostKeyChecking", "no");
    session.setConfig(config);
    session.connect();
    System.out.println("Host connected.");
    channel = session.openChannel("sftp");
    channel.connect();
    log("sftp channel opened and connected.");
    channelSftp = (ChannelSftp) channel;
    channelSftp.cd(SFTPWORKINGDIR);
    File f = new File(fileName);
    channelSftp.put(new FileInputStream(f), f.getName());
    log("File transferred successfully to host.");
} catch (Exception ex) {
     System.out.println("Exception found while transfer the response.");
     ex.printStackTrace();
} finally{

    channelSftp.exit();
    log("sftp Channel exited.");
    channel.disconnect();
    log("Channel disconnected.");
    session.disconnect();
    log("Host Session disconnected.");
}

最佳答案

查看较新版本的 Jsch (1.50),下载速度更快。

关于jsch - 如何增加 jsch 缓冲区大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17858565/

相关文章:

java - 将文件复制到 SFTP 服务器的 Jsch 示例

java - 使用JCraft Jsch - 执行sshpass命令不成功

java - Jsch shell/Expecdt4j 简单示例?

java - 即使服务器的主机 key 存在于known_hosts 文件中,JSch 连接也会失败并显示 UnknownHostKey

java - 如何使用 JSch 执行交互式命令并从 Java 读取其稀疏输出

java - 使用 "exec" channel 的 JSch SCP 文件传输

java - 通过 JSch shell 的多个命令

java - JSch ChannelExec 15 分钟后超时

java - 将文件从 Android 应用程序上传到 SFTP 服务器

java - 通过SFTP从java代码连接到AS400服务器