Estoy utilizando Apache Commons FTPClient para cargar archivos de gran tamaño, pero la velocidad de transferencia es solo una fracción de la velocidad de transferencia usando WinSCP a través de FTP. ¿Cómo puedo acelerar mi transferencia?Acelerar Apache Commons FTPClient Transfer
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);
}
}
}
La versión 3.3 de Apache sufre el problema de establecer BufferSize en cero, ya que usaría el valor predeterminado (8192) en lugar del valor ilimitado como se esperaba. – Thinhbk
Tuve que actualizar de la versión 3.2 a la versión 3.5 y funcionó; de lo contrario, aún es lento. Tal vez 3.3 funciona sin embargo. – JohnyTex