tienen - Módulo Python que implementa ftps
que es una libreria python (7)
Me preguntaba si alguien podría indicarme un módulo ftps gratuito para Python.
Soy un novato completo de Python, pero esto es algo que necesito para un proyecto de trabajo. Necesito un cliente de ftps para conectarme a un servidor ftps de un tercero.
Gracias,
David.
No lo intenté yo mismo (sí, acabo de utilizar Google y seguí algunos enlaces), pero http://www.lag.net/paramiko/ parece ser la solución recomendada. Desde una mirada superficial, es una implementación de SSH en Python puro, que permite hacer túneles para cosas como FTP.
Actualización: un comentarista señaló que mezclé sftp y ftps, lo siento. Todavía sugiero al menos investigar a Paramiko brevemente para ver si coincide con los requisitos.
Creo que podría usar Twisted para implementar FTPS simplemente usando su implementación de FTP, pero cambiando el atributo FTPClient.connectFactory
para que sea una función que haga algo con connectSSL
lugar de connectTCP
.
¿Estás seguro de que quieres FTPS? SFTP es un protocolo diferente, mejor y mucho más popular en la actualidad : Twisted también contiene una implementación de SFTP .
M2Cypto tiene un módulo FTPS. De la documentación :
>>> from M2Crypto import ftpslib
>>> f = ftpslib.FTP_TLS()
>>> f.connect('''', 9021)
''220 spinnaker.dyndns.org M2Crypto (Medusa) FTP/TLS server v0.07 ready.''
>>> f.auth_tls()
>>> f.set_pasv(0)
>>> f.login(''ftp'', ''ngps@'')
''230 Ok.''
>>> f.retrlines(''LIST'')
-rw-rw-r-- 1 0 198 2326 Jul 3 1996 apache_pb.gif
drwxrwxr-x 7 0 198 1536 Oct 10 2000 manual
drwxrwxr-x 2 0 198 512 Oct 31 2000 modpy
drwxrwxr-x 2 0 198 512 Oct 31 2000 bobo
drwxr-xr-x 2 0 198 14336 May 28 15:54 postgresql
drwxr-xr-x 4 100 198 512 May 16 17:19 home
drwxr-xr-x 7 100 100 3584 Sep 23 2000 openacs
drwxr-xr-x 10 0 0 512 Aug 5 2000 python1.5
-rw-r--r-- 1 100 198 326 Jul 29 03:29 index.html
drwxr-xr-x 12 0 0 512 May 31 17:08 python2.1
''226 Transfer complete''
>>> f.quit()
''221 Goodbye.''
>>>
Alternativamente, si quiere minimizar el uso de módulos de terceros, debería poder subclasificar la clase ftplib .FTP de la biblioteca estándar con el soporte de SSL integrado (a Python). M2Crypto (o Twisted , si quieres seguir así) es la solución más fácil.
No pude encontrar un cliente sftp gratuito para Windows, así que terminé envolviendo el PSFTP de Putty usando el módulo de subproceso de python. Probablemente hubiera usado la implementación retorcida mencionada por Glyph si lo hubiera sabido.
De todos modos, si está interesado, está disponible en:
En cuanto a la implementación del servidor, puede consultar pyftpdlib: http://code.google.com/p/pyftpdlib/ Incluye un script de demostración que implementa un servidor FTPS funcional: http://code.google.com/p/ pyftpdlib / source / browse / trunk / demo / tls_ftpd.py
En cuanto a la implementación del cliente, proporcioné un parche que se incluirá en python 2.7 y 3.2. http://bugs.python.org/issue2054
El módulo ftplib en Python versión 2.7.1 tiene toda la funcionalidad que necesitará, incluido el soporte TLS.