我使用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。
答案 0 :(得分:0)
原来问题是我连接的FTP服务器需要会话恢复,Python 3.5和2.7不支持。该功能已在3.6中添加。