2010-10-23 29 views
5

Quiero construir un servidor FTP simple en python que sirva al cliente simplemente descargando un archivo de texto. ¿Puede alguien amablemente ayudarme sugiriendo el mejor material de estudio para referirme y ayudarme a encontrar algunos fragmentos de código?Código simple para servidor FTP en python

+0

¿Tiene que ser FTP? HTTP sería mucho más simple. –

Respuesta

0

This es probablemente lo mejor que puede encontrar para entender el protocolo FTP. La implementación debería ser bastante simple una vez que haya entendido el mecanismo.

+0

He revisado los detalles del protocolo ftp, pero la implementación que lo usa es un poco diferente. Quiero un código de muestra simple para tener una idea de ello. –

+0

@Nilesh Nar: proporcionado un ejemplo con retorcido. – pyfunc

2

puedo recomendar pyftpdlib hosted at Google Code

Ejemplo:

>>> from pyftpdlib.authorizers import DummyAuthorizer 
>>> from pyftpdlib.handlers import FTPHandler 
>>> from pyftpdlib.servers import FTPServer 
>>> 
>>> authorizer = DummyAuthorizer() 
>>> authorizer.add_user("user", "12345", "/home/giampaolo", perm="elradfmw") 
>>> authorizer.add_anonymous("/home/nobody") 
>>> 
>>> handler = FTPHandler 
>>> handler.authorizer = authorizer 
>>> 
>>> server = FTPServer(("127.0.0.1", 21), handler) 
>>> server.serve_forever() 
[I 13-02-19 10:55:42] >>> starting FTP server on 127.0.0.1:21 <<< 
[I 13-02-19 10:55:42] poller: <class 'pyftpdlib.ioloop.Epoll'> 
[I 13-02-19 10:55:42] masquerade (NAT) address: None 
[I 13-02-19 10:55:42] passive ports: None 
[I 13-02-19 10:55:42] use sendfile(2): True 
[I 13-02-19 10:55:45] 127.0.0.1:34178-[] FTP session opened (connect) 
[I 13-02-19 10:55:48] 127.0.0.1:34178-[user] USER 'user' logged in. 
[I 13-02-19 10:56:27] 127.0.0.1:34179-[user] RETR /home/giampaolo/.vimrc completed=1 bytes=1700 seconds=0.001 
[I 13-02-19 10:56:39] 127.0.0.1:34179-[user] FTP session closed (disconnect).