gpt4 book ai didi

python - 使用 python lib 从 FTP 获取大文件

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:43 25 4
gpt4 key购买 nike

我需要从 FTP 服务器下载一些大文件(每个文件 >30GB)。我正在使用 python standardlib 中的 ftplib,但有一些缺陷:如果我下载一个大文件,如果文件完成,我将无法再使用该连接。之后我收到 EOF 错误,因此连接关闭(由于超时?)并且对于每个后续文件,我将收到错误 421。

据我所读,有两个联系。数据和控制 channel ,其中数据通道似乎工作正常(我可以完全下载文件)但同时控制 channel 超时。我还读到 ftplib(和其他 python ftp 库)不适合大文件,可能只支持最大 1GB 左右的文件。这里有一个与此主题类似的问题:How to download big file in python via ftp (with monitoring & reconnect)?这不太一样,因为相比之下我的文件很大。

我当前的代码如下所示:

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 时遇到问题,可以尝试使用专为处理此类大文件而设计的不同协议(protocol)。

一些合适的solutions存在。 Rsync 可能是一个很好的开始方式。

关于python - 使用 python lib 从 FTP 获取大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30185720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com