python – FTPES – 需要会话重用
发布时间:2020-12-15 12:04:02 所属栏目:Python 来源:互联网
导读:所以,我正在尝试连接到ftp服务器以获取目录列表和下载文件.但是prot_p()函数之后的第一个命令引发了异常 – 从日志中产生这些错误: *get* 150 Here comes the directory listing.rn*resp* 150 Here comes the directory listing.*get* 522 SSL connection fa
|
所以,我正在尝试连接到ftp服务器以获取目录列表和下载文件.但是prot_p()函数之后的第一个命令引发了异常 – 从日志中产生这些错误: *get* '150 Here comes the directory listing.rn'
*resp* '150 Here comes the directory listing.'
*get* '522 SSL connection failed; session reuse required: see require_ssl_reuse
option in vsftpd.conf man pagern'
*resp* '522 SSL connection failed; session reuse required: see require_ssl_reuse
option in vsftpd.conf man page'
Traceback (most recent call last):
File "C:tempdownload.py",line 29,in <module>
files = ftps.dir()
File "C:Python27libftplib.py",line 522,in dir
self.retrlines(cmd,func)
File "C:Python27libftplib.py",line 725,in retrlines
return self.voidresp()
File "C:Python27libftplib.py",line 224,in voidresp
resp = self.getresp()
File "C:Python27libftplib.py",line 219,in getresp
raise error_perm,resp
ftplib.error_perm: 522 SSL connection failed; session reuse required: see requir
e_ssl_reuse option in vsftpd.conf man page
这是代码: from ftplib import FTP_TLS
import os
import socket
host = 'example.com'
port = 34567
user = 'user1'
passwd = 'pass123'
acct = 'Normal'
ftps = FTP_TLS()
ftps.set_debuglevel(2)
ftps.connect(host,port)
print(ftps.getwelcome())
print(ftps.sock)
ftps.auth()
ftps.login(user,passwd,acct)
ftps.set_pasv(True)
ftps.prot_p()
print('Current directory:')
print(ftps.pwd())
files = ftps.dir()
ftps.quit()
我想安全地这样做,因此使用FTP over TLS Explicit.我有一个想法,我可能需要操作FTPLib引用的Socket类中的一些设置.不可能更改服务器上的设置.我已经使用FileZilla客户端成功测试了服务器,旧版本的WinSCP引发了同样的错误 – 尽管升级到最新版本修复了它. 有任何想法吗? 解决方法现在可以通过此类(FTP_TLS的后代)轻松修复Python 3.6:class MyFTP_TLS(ftplib.FTP_TLS):
"""Explicit FTPS,with shared TLS session"""
def ntransfercmd(self,cmd,rest=None):
conn,size = ftplib.FTP.ntransfercmd(self,rest)
if self._prot_p:
conn = self.context.wrap_socket(conn,server_hostname=self.host,session=self.sock.session) # this is the fix
return conn,size (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – 根据列值过滤numpy ndarray(矩阵)
- Python:如何在字符串中剪切超过2个相等字符的序列
- python – 在字符串列表中标记动态子字符串
- python – 如何编写依赖于子关系中的列的混合属性?
- python – 每个bin中具有相同点数的直方图
- 在django管理员中替代用户选择界面以减小大型网站上的页面大
- python – pip安装eyeD3模块.找不到libmagic
- dict.viewkeys()返回的数据类型是什么? [python 2.7]
- python – 从py2exe’d程序连接到Oracle时出错:无法获取Or
- 解密Python中的描述符(descriptor)
