使用python库从FTP获取大文件

使用python库从FTP获取大文件,python,ftp,Python,Ftp,我需要从FTP服务器下载一些大文件(每个文件大于30GB)。我使用的是python标准库中的ftplib,但是有一些缺陷:如果我下载了一个大文件,如果文件完成,我就不能再使用连接。之后我得到一个EOF错误,因此连接被关闭(由于超时?),对于每个后续文件,我将得到一个错误421 从我所读到的,有两种联系。数据和控制通道,其中数据通道似乎工作正常(我可以完全下载文件),但控制通道同时超时。 我还了解到ftplib(和其他python ftp库)不适合大文件,可能只支持1GB左右的文件。 这里有一个与

我需要从FTP服务器下载一些大文件(每个文件大于30GB)。我使用的是python标准库中的ftplib,但是有一些缺陷:如果我下载了一个大文件,如果文件完成,我就不能再使用连接。之后我得到一个EOF错误,因此连接被关闭(由于超时?),对于每个后续文件,我将得到一个错误421

从我所读到的,有两种联系。数据和控制通道,其中数据通道似乎工作正常(我可以完全下载文件),但控制通道同时超时。 我还了解到ftplib(和其他python ftp库)不适合大文件,可能只支持1GB左右的文件。 这里有一个与此主题类似的问题:这不完全相同,因为相比之下,我的文件是巨大的

我当前的代码如下所示:

import ftplib
import tempfile

ftp = ftplib.FTP_TLS()

ftp.connect(host=server, port=port)
ftp.login(user=user, passwd=password)
ftp.prot_p()
ftp.cwd(folder)

for file in ftp.nlst():
    fd, local_filename = tempfile.mkstemp()
    f = open(fd, "wb")
    ftp.retrbinary('RETR %s' % file, callback=f.write, blocksize=8192)
    f.close()

我可以使用它或其他支持大文件的库吗?

如果您遇到标准FTP的问题,可以尝试使用专门设计用于处理此类大文件的不同协议


存在许多合适的方法。Rsync可能是一个很好的开始方式。

您找到解决方法了吗?遇到类似问题