我使用Apache Commons FTPClient上傳大文件,但傳輸速度只是使用WinSCP通過FTP傳輸速度的一小部分。我怎樣才能加快我的轉移?加快Apache Commons FTPClient傳輸
public boolean upload(String host, String user, String password, String directory,
String sourcePath, String filename) throws IOException{
FTPClient client = new FTPClient();
FileInputStream fis = null;
try {
client.connect(host);
client.login(user, password);
client.setControlKeepAliveTimeout(500);
logger.info("Uploading " + sourcePath);
fis = new FileInputStream(sourcePath);
//
// Store file to server
//
client.changeWorkingDirectory(directory);
client.setFileType(FTP.BINARY_FILE_TYPE);
client.storeFile(filename, fis);
client.logout();
return true;
} catch (IOException e) {
logger.error("Error uploading " + filename, e);
throw e;
} finally {
try {
if (fis != null) {
fis.close();
}
client.disconnect();
} catch (IOException e) {
logger.error("Error!", e);
}
}
}
Apache版本3.3存在將BufferSize設置爲零的問題,因爲它會使用默認值(8192)而不是無限制的值。 – Thinhbk 2013-11-19 11:39:24
我不得不從版本3.2更新到版本3.5,它的工作,否則仍然很慢。也許3.3工程雖然。 – JohnyTex 2016-06-14 17:24:23