实现FTP接口/协议

时间:2012-09-24 10:07:55

标签: python ftp ftp-server

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

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

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

我想,服务器需要从外部模仿FTP接口/协议,但内部工作方式完全不同。

我想知道这项工作会有多大或多大,因为我需要提供某种类型的时间表来实现这项工作。

那里有没有这样的东西?以前有人做过类似的事吗?

试图实施这种模型有没有明显的问题?

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

为什么是python?我的意思是python与它有什么关系?我会寻找一些PAM模块,能够在登录时创建用户特定的虚拟文件系统结构,如果没有现成的,请考虑修改一些pam_mount,类似的东西..

http://pam-mount.sourceforge.net