Speed up Apache Commons FTPClient transfer
===

I am using Apache Commons FTPClient to upload large files, but the transfer speed is only a fraction of transfer speed using WinSCP via FTP. How can I speed up my 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);
	        }
	    }		  
	}

