2010-10-23 7 views
5

Desidero creare un semplice server FTP in python che servirà il client solo scaricando un file di testo. Qualcuno può aiutarmi gentilmente suggerendo il miglior materiale di studio da consultare e aiutarmi a trovare alcuni frammenti di codice.Codice semplice per FTP Server in python

+0

Deve essere FTP? HTTP sarebbe molto più semplice. –

risposta

0

This è probabilmente il migliore che si possa trovare per comprendere il protocollo FTP. L'implementazione dovrebbe essere piuttosto semplice una volta capito il meccanismo.

+0

Ho esaminato i dettagli del protocollo ftp, ma l'implementazione che lo utilizza è leggermente diverso. Voglio un semplice codice di esempio per avere un'idea di esso. –

+0

@Nilesh Nar: fornito un esempio con twistato. – pyfunc

2

posso consigliare pyftpdlib hosted at Google Code

Esempio:

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