我使用jsch進行sftp文件傳輸。當我使用sftp命令通過設置緩衝區大小512(-B選項)sftp B 512 [sftp服務器名稱]並調用put命令發送文件時,我可以以8.0MBPS傳輸文件。 (常規速度3.0MBPS)。如何增加jsch緩衝區大小?
當我在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.");
}