FTPES - Reutilización de sesión requerida
Por lo tanto, estoy tratando de conectarme a un servidor ftp para obtener listados de directorios y descargar archivos. Pero el primer comando después de la función prot_p () está generando una excepción - Produciendo estos errores desde el registro:
*get* '150 Here comes the directory listing.\r\n'
*resp* '150 Here comes the directory listing.'
*get* '522 SSL connection failed; session reuse required: see require_ssl_reuse
option in vsftpd.conf man page\r\n'
*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:\temp\download.py", line 29, in <module>
files = ftps.dir()
File "C:\Python27\lib\ftplib.py", line 522, in dir
self.retrlines(cmd, func)
File "C:\Python27\lib\ftplib.py", line 725, in retrlines
return self.voidresp()
File "C:\Python27\lib\ftplib.py", line 224, in voidresp
resp = self.getresp()
File "C:\Python27\lib\ftplib.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
Aquí está el código:
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()
Quiero hacer esto de forma segura, por lo tanto, uso de FTP a través de TLS Explicit. Tengo la idea de que puedo necesitar manipular algunas configuraciones en la clase Socket referenciada por FTPLib. Cambiar la configuración en el servidor no es una posibilidad. He probado el servidor con éxito con el cliente FileZilla, una versión anterior de WinSCP estaba generando el mismo error, aunque una actualización a la versión más reciente lo solucionó.
¿Algunas ideas?