【问题标题】:Multithreaded FTP upload. Is it possible?多线程 FTP 上传。是否可以?
【发布时间】:2010-04-03 08:07:09
【问题描述】:

我需要通过 FTP 和 SFTP 将目录中的多个文件上传到服务器。 我已经用 python、paramiko 和线程解决了 SFTP 的这个任务。但我在为 FTP 做这件事时遇到了问题。我尝试使用ftplib for python,但似乎不支持线程,我将所有文件一个一个上传,这很慢。

我想知道是否可以使用 FTP 协议进行多线程上传,而无需创建单独的连接/授权(需要很长时间)?

解决方案可以是 Python 或 PHP。也许卷曲?如有任何想法,将不胜感激。

【问题讨论】:

    标签: php python ftp curl multithreading


    【解决方案1】:

    创建asynchronous FTP client 是一种努力,但基本上FTP 协议允许同步命令。要允许并行下载/上传,您需要打开多个 FTP 连接。这可以通过 ftplib 和线程来完成。

    【讨论】:

      【解决方案2】:

      除了 through 之外的另一种并发方法是异步 io。对于 Python,异步网络的标准工具包是 Twisted

      看看 Twisted 中的这个 FTP 客户端 example

      【讨论】:

        【解决方案3】:

        看起来 pycurl 模块可能有一些可能。

        有两个例子,如果你把它们放在一起就可以了。

        去这里:http://pycurl.cvs.sourceforge.net/pycurl/pycurl/examples/

        并查看retriever-multi.py 和file_upload.py 以获取有关如何将它们组合在一起的示例。

        【讨论】:

          【解决方案4】:

          您可以在多个命令提示符/shell 中运行脚本(只需确保每个文件只由所有不同的脚本处理一次)。我不确定这个快速而肮脏的技巧是否会提高传输速度..

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-04-25
            • 2016-11-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-02-16
            • 1970-01-01
            相关资源
            最近更新 更多