我被要求使用 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/