我正在寻找替代python的ftplib,以提高速度。执行FTP上传时,python的ftplib.FTP.storbinary会对内存执行顺序读取,然后以指定块大小的块发送到服务器,直到上载文件为止。因此,它不是很快。理想情况下,一个线程将不断地向前读取至少一个块大小,而另一个线程将始终在内存中发送该块。 python本身的速度也可能是一个因素,但无论如何Ubuntu的本机FTP客户端(命令行)上传速度要快60%。
我曾考虑通过python子进程使用Ubuntu的本机FTP客户端,但我真的希望ftplib支持的回调功能更新每个块大小的单个文件的上传进度(在每个块发送后调用python函数指针) 。另外,从python调用Ubuntu的本机FTP客户端有点棘手,因为它本来是交互式的。
那么......有没有人对python中支持回调功能的FTP客户端有任何建议,并且比python的ftplib更快?我对已经使用python包装器设置的已编译C / C ++库开放。
编辑:我刚遇到pycurl,这可能符合要求。不知怎的,之前没有看到那一个。仍然很高兴听到其他建议!
答案 0 :(得分:2)
我认为pycURL将是您最好的选择之一。我在此网站上发现了另一个问题,但同意这一点。问题与你的问题不完全相同,但也许它会帮助你。