
[英]Python 3.4 ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:1638)
[英]python3 ftplib SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:645)')
您好,我正在尝试使用被动模式和显式tls从简单的ftp文件zilla服务器中进行简单的读取和写入文件,我已对其文件zilla客户端进行了良好的设置。 我无法弄清楚在读取或写入时如何解决此错误。 执行诸如mkdir之类的其他命令的命令也可以正常工作
>>> from ftplib import FTP_TLS
>>> import subprocess
>>> import io
>>> import os
>>> import sys
>>> from datetime import datetime, date, time
>>> from os.path import basename
>>> local_filename = os.path.join(os.getcwd(), 'KansasCityTestData.csv')
>>> print(local_filename)
/var/www/KansasCityTestData.csv
>>> myfile = open(local_filename, 'wb')
>>> myfile
<_io.BufferedWriter name='/var/www/KansasCityTestData.csv'>
>>> command = 'RETR /%s' % 'KansasCityTestData.csv'
>>> command
'RETR /KansasCityTestData.csv'
>>> ftp = FTP_TLS('111.111.111.111') #except my real info
>>> ftp.login('myuser', 'mypass')
'230 Logged on'
>>> ftp.prot_p()
'200 Protection level set to P'
>>> ftp.set_pasv(True)
>>> ftp.retrbinary(command, myfile.write)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.5/ftplib.py", line 441, in retrbinary
with self.transfercmd(cmd, rest) as conn:
File "/usr/lib/python3.5/ftplib.py", line 398, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "/usr/lib/python3.5/ftplib.py", line 796, in ntransfercmd
server_hostname=self.host)
File "/usr/lib/python3.5/ssl.py", line 377, in wrap_socket
_context=self)
File "/usr/lib/python3.5/ssl.py", line 752, in __init__
self.do_handshake()
File "/usr/lib/python3.5/ssl.py", line 988, in do_handshake
self._sslobj.do_handshake()
File "/usr/lib/python3.5/ssl.py", line 633, in do_handshake
self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:645)
我正在Ubuntu 16.04上使用python3.5.2。 我一直在寻找许多类似的问题,但似乎不适用于ftp。 我所能找到的就是python3支持显式tls就好了。 任何帮助是极大的赞赏。
所以我想通了,这个答案不在我可以解决的其他任何线程中。 事实证明,服务器已为被动连接启用了tls会话重用,直到python3.6才支持。 所以我关闭了要求,它工作正常。 在filezilla中,它称为“使用prot_p时要求在数据连接上恢复TLS会话”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.