Você pode usar o NcFtp que pode ser executado no Windows. Ele implementa um NcFtpPut e um NcFtpGet que funcionam muito bem com scripts.
Eu tenho um script de compilação que usa o windows padrão Ftp.exe para transferir grandes arquivos pelo mundo todas as noites. Leva séculos!
O Filezilla é muito mais rápido, mas não parece ser muito legível.
Alguma sugestão?
Você pode usar o NcFtp que pode ser executado no Windows. Ele implementa um NcFtpPut e um NcFtpGet que funcionam muito bem com scripts.
A instalação do cygwin seria uma opção? Então você deve ser capaz de usar o bash e um cliente FTP unix (scriptável) a partir da sua caixa do Windows.
Alguma chance de você poder usar scp em vez de ftp? Eu usei o pscp utilmente em PuTTY e descobri que ele é bastante programável. Putty também inclui um cliente sftp, fwiw.
Se o Cygwin completo não for uma opção, experimente a versão para Windows cURL .
O WinSCP faz o sFTP e o FTP.
O script é fácil & bem documentado
Você também pode experimentar o Script2Cloud no K2SXS.
Suporta quatro linguagens de script orientadas a objetos (C ++, JavaScript, Pascal, Basic) e suporta vários protocolos de transferência de arquivos, incluindo FTP (S), SFTP, WebDAV e alguns protocolos de nuvem como Azure e S3 em desenvolvimento. / p>
Esta é a página da Web: link
correndo o risco de soar como um zelote do Linux, você pode mudar para o rsync? ou se você está usando robocopy inclinado?
Eu não tenho experiência com isso, mas ScriptFTP pode fazer o trabalho.
você pode usar o powershell:
$File = "C:\foofile.zip"
$ftp = "ftp://username:[email protected]/upload/incoming/newfile.zip"
"ftp url: $ftp"
$webclient = New-Object System.Net.WebClient
$uri = New-Object System.Uri($ftp)
"Uploading $File..."
$webclient.UploadFile($uri, $File)
CoreFTP tem um módulo de script. Nós usamos isso para algum sucesso. Não é ótimo, mas muito OK. Eu sigo a ideia do cygwin. Eu corro cygwin em todos os meus servidores (em grande parte devido à minha dependência pessoal na cauda).
Olink tem algumas anotações sobre scripts de FTP no Windows.
O Wget foi criado para o Windows (skpping cygwin.dll) link
Dedique o FTP e use o Rsync ( DeltaCopy) , que copia apenas os arquivos alterados. Se o DeltaCopy não fizer o que você precisa - o Cygwin + Rsync + Bash irá.
Eu também usei o ActiveState Perl e uma biblioteca FTP para o Perl antes de fazer operações FTP mais complexas.
O% básicoFTP.exe
é bastante estável e a primeira pergunta a fazer é:
Por que você tem um desempenho ruim daquele FTP?
Você está comparando com o desempenho do FileZilla .
Posso pensar em apenas duas coisas que poderiam ser feitas para superar o desempenho básico de FTP para a transferência de arquivos grandes.
Eu não consegui localizar um cliente de linha de comando (habilitado para scripts) que pode ser solicitado a executar downloads de várias partes. Talvez, se outros que estiverem respondendo aqui concordarem com essas ideias, possam sugerir uma referência adequada.
Eu sempre achei NcFTP bom para a maioria das finalidades, e esperava que esse suporte estivesse disponível lá. O controle so-bufsize
no NcFTP pode ajudar no ponto-2 acima.
Existe um script do ActiveState Python que encontrei no processo,
Mas não tenho ideia de como usá-lo para o seu propósito.
referência: download de FTP multipart encadeado via REST
A parte estranha é que a discussão neste script diz que o FileZilla não estava dando desempenho suficiente!
We needed to speed up downloading from a client's FTP site. For some reason, we could only get around 21 KB/s when downloading normally (FileZilla). Using this, I was able to get 100 KB/s with 5 connections and 200 KB/s if I was able to open 10 connections.
Currently, this could only download one file at a time. Haven't yet given much thought to downloading multiple file as this, as it is, meets our present requirements.
Você pode querer tentar wput .