Org.apache.commons.net.ftp.FTPClient lento para transferir arquivos

Estou tentando utilizar a class FTPClient para enviar um arquivos, mas ela esta muito lenta(demora mais de 10 min), muita vezes mandando arquivos pela metade, e são arquivos pequenos < 200k. que consigo mandar facilmente pelo filezilla

Segue minha classe

import java.io.FileInputStream;
import java.io.IOException;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.commons.net.ftp.FTPClient;
/**
 *
 * @author rodrigo
 */
public class Ftp {
    private Configuracao conf;
    private FTPClient ftp = new FTPClient();

    public Ftp( Configuracao conf){
        this.conf = conf;
    }
    public boolean  conectar() throws IOException{
        this.ftp.connect( conf.getFtp() );
        this.ftp.enterLocalPassiveMode();
        this.ftp.setBufferSize(100000);
         if( FTPReply.isPositiveCompletion( ftp.getReplyCode() ) ) {
                 ftp.login( this.conf.getUsuario() , this.conf.getSenha() );
                 return true;
         } else {
                 //erro ao se conectar
                 ftp.disconnect();
                 System.out.println("Conexão recusada");
                 return false;
         }
    }

    public void enviar(String arquivo) throws IOException{

        this.ftp.cwd(this.conf.getPasta());
        this.ftp.setFileType( FTPClient.BINARY_FILE_TYPE );

        this.ftp.storeFile("foto001.png", new FileInputStream(arquivo));
        for(String n : this.ftp.listNames()){
        System.out.println(n);

        }
        ftp.disconnect();
    }

 
}

[code]public class Main {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {

   Ftp f = new Ftp(new Configuracao());
    try {
        f.conectar();
        f.enviar("foto.jpg");
    } catch (IOException ex) {
        System.out.println("erro"+ex);
    }
}

}
[/code]

Alguem tem mais experiência com essa api para me dar algum conselho?

Eu uso direto esta api, e funciona perfeitamente, a sua internet pode estar sobrecarregada, ou lenta ou então o servidor ftp, pois comigo sempre funcionou perfeitamente.
A classe que eu utilizo para manipular arquivos no ftp, esta no meu projeto OpenSutils-Br4J c vc quizer ver se eu faço alguma coisa diferente o codigo esta no svn. no link abaixo:

http://code.google.com/p/opensutils-br4j/wiki/FTPApacheCommonsNetImpl
dowload com dependencias:
http://code.google.com/p/opensutils-br4j/downloads/detail?name=opensutils-br4j-with-dependencies.0.1.zip&can=2&q=#makechanges
codigo:
https://opensutils-br4j.googlecode.com/svn/OpenSutils-Br4J/src/org/opensutils/io/ftp/FTPApacheCommonsNetImpl.java

Bom pessoal achei essa solução, que melhorou extremamente a velocidade e também vai permitir fazer uma barra de progresso lendo o arquivo aos pedaços e gravado no outputstream.

int tamanho =  (int) (new File(arquivo)).length();       
InputStream in = new FileInputStream(arquivo);
OutputStream out = this.ftp.storeFileStream("foto001.png");
byte b[] = new byte[tamanho];
in.read(b);
out.write(b);
out.close();
in.close();
ftp.disconnect();

Priuli, legal essa tua lib, vou dar uma estudada.

Olá Rodrigo, tbm estou com problemas com a commos net pra fazer upload dos arquivos ,leeeeeeennnnto demais,pior uqe rubens pé de chinelo, vc conseguiu solucionar seu problema? no exemplo que vc postou onde vc faz o ftp.store()?