Evreli bir FTP yükleme.

4 Cevap php

I need to upload multiple files from directory to the server via FTP and SFTP. I've solved this task for SFTP with python, paramiko and threading. But I have problem with doing it for FTP. I tried to use ftplib for python, but it seems that it doesn't support threading and I upload all files one by one, which is very slow.

Ben merak ediyorum onu ​​(çok uzun sürüyor) ayrı bağlantıları / yetki yaratmadan FTP protokolü ile çoklu yüklenenler yapmak bile mümkün değildir?

Çözüm Python veya PHP üzerinde olabilir. Belki CURL? Herhangi bir fikir için minnettar olacaktır.

4 Cevap

Orada bir asynchronous FTP client yaratmanın bir effor ama temelde FTP protokolü eşzamanlı komutları verir. Paralel downloads / yüklenenler izin vermek için birden çok FTP bağlantıları açmak gerekir. Bu ftplib ve parçacıkları tarafından yapılabilir.

Aracılığıyla yanı sıra eşzamanlılık için başka bir yaklaşım asenkron io. Python için uyumsuz ağ için standart bir araç olduğunu Twisted.

Bu FTP istemcisi example Twisted de bir göz atın.

Şey pycurl modülü ile mümkün olabilir gibi görünüyor.

Eğer bunları bir araya koyarsanız işe iki örnek vardır.

Buraya git: http://pycurl.cvs.sourceforge.net/pycurl/pycurl/examples/

ve muhtemelen onları bir araya getirmek için nasıl örnekler için retriever-multi.py ve file_upload.py içine bakmak.

Sen (Sadece emin her dosya sadece tüm farklı komut bir kez işlenir olun) çoklu komut istemleri / kabukları komut dosyasını çalıştırabilirsiniz. Ben bu hızlı ve kirli bir hüner olsa aktarım hızını artıracak emin değilim ..