Python中简单的FTP服务器代码

6 投票
3 回答
30050 浏览
提问于 2025-04-16 05:58

我想用Python搭建一个简单的FTP服务器,这个服务器只需要让客户端下载一个文本文件。有没有人能帮我推荐一些好的学习资料,或者给我一些代码示例呢?

3 个回答

0

这个链接可能是你了解FTP协议的最佳资料。一旦你明白了这个机制,实际操作起来应该会很简单。

4

我可以推荐一个在Github上托管的库,叫做 pyftpdlib

下面是一个例子:

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

看看用 Twisted 实现的 FTP 示例

还有一个简单的实现:ftpdrop.py

撰写回答