I was wondering if anybody could point me towards a free ftps module for python.
I am a complete newbie to python, but this is something I need for a work project. I need an ftps client to connect to a 3rd party ftps server.
thanks,
David.
I believe you could use Twisted to implement FTPS by simply using its FTP implementation, but changing the FTPClient.connectFactory
attribute to be a function that does something with connectSSL
rather than connectTCP
.
Are you sure you want FTPS though? SFTP is a different, better, and much more popular protocol these days: Twisted contains an SFTP implementation as well.
The ftplib module in Python version 2.7.1 has all of the functionality you will need, including TLS support.
http://docs.python.org/library/ftplib.html#module-ftplib
M2Cypto has a FTPS module. From the documentation:
>>> 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.'
>>>
Alternatively, if you wanted to minimise use of third-party modules, you should be able to subclass the standard library's ftplib.FTP class with the built-in (to Python) SSL support. M2Crypto (or Twisted, if you want to go that way) is the easier solution, though.
Twisted seems to have some implementation of FTPS (FTP over SSL) under the conch sub-project. I am no twisted expert, but Glyph, the twisted man himself, is listed in this site. Maybe by following his answer to another question, you can find more details (good luck).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With