使用Python ftplib在FTPS上使用SSLEOFError

时间:2016-11-10 20:01:44

标签: python ftplib ftps

我使用FTPS(显式)连接到FTP站点。连接和基本命令工作正常,但当我尝试检索目录列表或文件时,我得到一个SSLEOFError。

from ftplib import FTP_TLS
ftps = FTP_TLS()
ftps.auth()
ftps.prot_p()
ftps.login(username, password)
ftps.cwd('/')
ftps.retrlines('LIST')
ftps.quit()

所有内容都列在' LIST'命令执行没有问题。对于' LIST'命令我得到答复:

'150 Opening data channel for directory listing of "/"

然后我收到错误:

SSLEOFError: EOF occurred in violation of protocol (_ssl.c:645)

我已尝试明确设置TLSv1 - 无济于事。使用FTP客户端我可以毫无问题地连接到FTP站点。我的代码中我做错了什么?我已经尝试过Python 3.5和2.7。

1 个答案:

答案 0 :(得分:0)

原来问题是我连接的FTP服务器需要会话恢复,Python 3.5和2.7不支持。该功能已在3.6中添加。