如何防止 ftplib 由于不活动而终止连接?

问题描述

我的 Python 脚本根据需要将数千个小文件(每个文件从 1KB 到 10KB)从 VPS 上传到网络服务器,并且每个文件都是单独上传的。 Ftplib 在上传每个文件时有 1.9 秒的延迟甚至更多,考虑到我脚本中的其他所有内容都需要 1 秒,所以我尝试只使用一个登录会话而不是在每次上传关闭连接,这将时间缩短到大约0.8 秒,快了一秒多。但是,当没有任何上传时,连接超时,当我想再次登录时,它会引发 EOF 异常。代码如下:

def login():
    ftp.login(user='username',passwd = 'password')
    ftp.cwd('public_html/data/')
def upload(filenumber)
    file = open('/home/file/cached/'+filenumber+'.html','rb') 
    ftp.storbinary('STOR '+filenumber+'.html',file)                                  
    ftp.quit()
 

函数循环:

ftp = FTP('ftp.domain',timeout=5)
login()
try:
  upload(filenumber)
except Exception as ex:
  print(ex)
  login()
  upload(filenumber)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)