9 Stimmen

Python-Modul, das FTPS implementiert

Ich frage mich, ob jemand mir ein kostenloses FTPS-Modul für Python empfehlen könnte.

Ich bin völlig neu in Python, aber das brauche ich für ein Arbeitsprojekt. Ich brauche einen FTPS-Client, um mich mit einem FTPS-Server eines Drittanbieters zu verbinden.

Danke,

David.

9voto

Glyph Punkte 30137

Ich glaube, Sie könnten Twisted verwenden, um FTPS zu implementieren, indem Sie einfach seine FTP-Implementierung verwenden, aber das FTPClient.connectFactory-Attribut ändern, um eine Funktion zu sein, die etwas mit connectSSL anstelle von connectTCP macht.

Sind Sie sicher, dass Sie FTPS möchten? SFTP ist diese Tage ein anderes, besseres und viel beliebteres Protokoll: Twisted enthält auch eine SFTP-Implementierung.

7voto

bb1 Punkte 71

Das ftplib-Modul in Python-Version 2.7.1 verfügt über alle Funktionen, die Sie benötigen, einschließlich TLS-Unterstützung.

http://docs.python.org/library/ftplib.html#module-ftplib

4voto

Tony Meyer Punkte 9701

M2Cypto hat ein FTPS-Modul. Aus der Dokumentation:

>>> 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.'
>>>

Alternativ, wenn Sie die Verwendung von Drittanbieter-Modulen minimieren möchten, sollten Sie in der Lage sein, die ftplib.FTP-Klasse der Standardbibliothek mit der integrierten (in Python) SSL-Unterstützung zu unterklassifizieren. M2Crypto (oder Twisted, wenn Sie diesen Weg gehen möchten) ist jedoch die einfachere Lösung.

3voto

gimel Punkte 78080

Twisted scheint eine Implementierung von FTPS (FTP über SSL) im Unterprojekt conch zu haben. Ich bin kein Twisted-Experte, aber Glyph, der Twisted-Mann selbst, ist auf dieser Seite gelistet. Vielleicht kannst du durch das Folgen seiner Antwort auf eine andere Frage weitere Details finden (viel Glück).

2voto

Giampaolo Rodolà Punkte 11562

Was die Serverimplementierung betrifft, können Sie sich pyftpdlib ansehen: http://code.google.com/p/pyftpdlib/ Es enthält ein Demoskript zur Implementierung eines funktionierenden FTPS-Servers: http://code.google.com/p/pyftpdlib/source/browse/trunk/demo/tls_ftpd.py

Was die Clientimplementierung betrifft, habe ich einen Patch bereitgestellt, der in Python 2.7 und 3.2 enthalten sein wird. http://bugs.python.org/issue2054

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X