我需要通过FTP和SFTP将多个文件从目录上传到服务器。 我用python,paramiko和threading解决了SFTP的这个任务。但我在为FTP做这件事时遇到了问题。我试图使用ftplib for python,但它似乎不支持线程,我逐个上传所有文件,这是非常慢的。
我想知道甚至可以使用FTP协议进行多线程上传而无需创建单独的连接/授权(这需要太长时间)?
解决方案可以在Python或PHP上。也许CURL?会对任何想法表示感谢。
答案 0 :(得分:2)
创建asynchronous FTP client有效,但基本上FTP协议允许同步命令。要允许并行下载/上传,您需要打开多个FTP连接。这可以通过ftplib和线程来完成。
答案 1 :(得分:1)
答案 2 :(得分:0)
看起来pycurl模块可能会有一些东西。
有两个例子,如果你把它们放在一起就可以了。
转到此处:http://pycurl.cvs.sourceforge.net/pycurl/pycurl/examples/
并查看retrievever-multi.py和file_upload.py,了解如何将它们组合在一起的示例。
答案 3 :(得分:0)
您可以在多个命令提示符/ shell中运行该脚本(只需确保每个文件仅由所有不同的脚本处理一次)。我不确定这个快速而肮脏的技巧是否会提高传输速度..