Python 3.6 ftps文件下载 - SSLEOFError:EOF违反协议(_ssl.c:841)

问题描述 投票:0回答:1

我正在尝试编写一个脚本,每隔一段时间就会转到Filezilla服务器来检索文件。我对Filezilla服务器和配置具有管理权限,但不对系统或网络的其余部分进行管理,但可以进行请求。

码:

from ftplib import FTP_TLS

host="11.211.171.41"
ftps = FTP_TLS(host)
ftps.login()
ftps.prot_p()
ftps.dir()
#-r--r--r-- 1 ftp ftp        5636096 Aug 07 00:50 master.mdf
#-r--r--r-- 1 ftp ftp        2097152 Aug 07 00:50 mastlog.ldf
filename = "master.mdf"
with open(filename, 'wb') as f:
    ftps.retrbinary('RETR {}'.format(filename), f.write)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/fcontreras/scripts/ftps/ftps.py", line 29, in get
    ftps.retrbinary('RETR {}'.format(filename), f.write)
  File "/home/fcontreras/miniconda3/envs/ftp/lib/python3.6/ftplib.py", line 442, in retrbinary
    with self.transfercmd(cmd, rest) as conn:
  File "/home/fcontreras/miniconda3/envs/ftp/lib/python3.6/ftplib.py", line 399, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
  File "/home/fcontreras/miniconda3/envs/ftp/lib/python3.6/ftplib.py", line 801, in ntransfercmd
    server_hostname=self.host)
  File "/home/fcontreras/miniconda3/envs/ftp/lib/python3.6/ssl.py", line 407, in wrap_socket
    _context=self, _session=session)
  File "/home/fcontreras/miniconda3/envs/ftp/lib/python3.6/ssl.py", line 814, in __init__
    self.do_handshake()
  File "/home/fcontreras/miniconda3/envs/ftp/lib/python3.6/ssl.py", line 1068, in do_handshake
    self._sslobj.do_handshake()
  File "/home/fcontreras/miniconda3/envs/ftp/lib/python3.6/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:841)

因此,重点是修复错误,但我很难找到(_ssl.c:841)的含义,我不知道从哪里开始查找。

python ssl filezilla ftps mdf
1个回答
0
投票

发现问题,SSLEOFError具有误导性,错误是因为数据库不可读。

我没有检查这一点,因为权限显示为:

#-r--r--r-- 1 ftp ftp        5636096 Aug 07 00:50 master.mdf
#-r--r--r-- 1 ftp ftp        2097152 Aug 07 00:50 mastlog.ldf

它们似乎永久地由创建它们的数据库引擎打开,并且Windows将不允许用户或FTP服务器读取要传输的文件。

希望这将有助于减少谷歌的时间。

© www.soinside.com 2019 - 2024. All rights reserved.