【问题标题】:Simple code for FTP Server in pythonpython中FTP服务器的简单代码
【发布时间】:2011-04-29 15:54:54
【问题描述】:

我想在 python 中构建一个简单的 FTP 服务器,它只需下载一个文本文件就可以为客户端提供服务。任何人都可以通过建议最好的学习材料来帮助我并帮助我找到一些代码sn-ps。

【问题讨论】:

  • 必须是 FTP 吗? HTTP 会简单得多。

标签: python ftp-server


【解决方案1】:

查看带有 twisted 的 FTP 示例

也是一个简单的实现:ftpdrop.py

【讨论】:

  • 再次感谢...我整天都在用谷歌搜索 FTP 示例代码,但我没有成功...您让我的工作更简单...非常感谢...
【解决方案2】:

我可以推荐pyftpdlib hosted at Github

例子:

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

【讨论】:

    【解决方案3】:

    This 可能是了解 FTP 协议的最佳方式。了解机制后,实现应该非常简单。

    【讨论】:

    • 我已经详细了解了 ftp 协议,但是使用它的实现有点不同。我想要一个简单的示例代码来了解它。
    • @Nilesh Nar:提供了一个扭曲的例子。