python - 实现 FTP 接口(interface)/协议(protocol)

标签 python ftp ftp-server

我被要求使用 python 设置一个 FTP 服务器,不同的用户可以登录,并且根据他们的登录将显示不同的文件结构。

结构的一部分将是只读的,另一部分是可写、可读、可创建和可删除的。

文件结构和文件不会在服务器上存在,并且必须在用户通过查询外部服务器扩展文件夹时以惰性方式构建。

我猜,服务器需要从外部模仿 FTP 接口(interface)/协议(protocol),但在内部以完全不同的方式工作。

我想知道这项工作有多大或有多困难,因为我需要提供某种类型的时间尺度来完成这项工作。

现在有这样的东西吗?以前有人做过类似的事情吗?

尝试实现这种模型是否存在任何明显的问题?

最佳答案

twisted project将是显而易见的起点;下面的示例启动一个简单的 FTP 服务器,该服务器根据密码文件对用户进行身份验证,但也允许匿名访问

from twisted.protocols.ftp import FTPFactory, FTPRealm
from twisted.cred.portal import Portal
from twisted.cred.checkers import AllowAnonymousAccess, FilePasswordDB
from twisted.internet import reactor

p = Portal(FTPRealm('./'),
           [AllowAnonymousAccess(), FilePasswordDB("pass.dat")])
f = FTPFactory(p)

reactor.listenTCP(21, f)
reactor.run()

您可以从那里轻松扩展。如何实现"file"和“目录”完全取决于您。

关于python - 实现 FTP 接口(interface)/协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12562844/

相关文章:

python - 如何通过 ndb 对 'Like' 机制进行建模?

python - 在 Python 中从 retrlines 创建列表

c# - Azure云服务嵌入式FTP服务器

c# - 使用 WinSCP .NET Assembly 防止通过 FTP 传输不完整的文件

ios - 上传录音到ftp

configuration - 在 CentOS 上无法登录 Webmin 设置的 ProFTPD

android - 从 SD 卡上传文件到 FileZilla 服务器

python - ndb 事务支持更新/回滚同一事务中的多个 ndb 模型条目

python - tkinter 网格中的行

Python提取子字符串但保留空格