Python 实现FTP接口/协议
我被要求使用python设置一个FTP服务器,不同的用户可以登录到该服务器,并且根据他们的登录将显示不同的文件结构 结构的一部分将是只读的,另一部分将是写、读、创建和删除的 服务器上不存在文件结构和文件,当用户通过查询外部服务器扩展文件夹时,必须以惰性方式构建文件结构和文件 我想,服务器需要从外部模拟FTP接口/协议,但内部工作方式完全不同 我想知道这项工作有多大或有多困难,因为我需要提供一些时间尺度来让它工作 外面已经有类似的东西了吗?以前有人做过类似的事情吗Python 实现FTP接口/协议,python,ftp,ftp-server,Python,Ftp,Ftp Server,我被要求使用python设置一个FTP服务器,不同的用户可以登录到该服务器,并且根据他们的登录将显示不同的文件结构 结构的一部分将是只读的,另一部分将是写、读、创建和删除的 服务器上不存在文件结构和文件,当用户通过查询外部服务器扩展文件夹时,必须以惰性方式构建文件结构和文件 我想,服务器需要从外部模拟FTP接口/协议,但内部工作方式完全不同 我想知道这项工作有多大或有多困难,因为我需要提供一些时间尺度来让它工作 外面已经有类似的东西了吗?以前有人做过类似的事情吗 尝试实现这种模型有什么明显的问题
尝试实现这种模型有什么明显的问题吗?为什么是python?我是说python和它有什么关系?我会寻找一些PAM模块,能够在登录时创建特定于用户的虚拟文件系统结构,如果没有准备好的文件,考虑修改一些PAMiSub,类似的……/P>
为什么是python?我是说python和它有什么关系?我会寻找一些PAM模块,能够在登录时创建特定于用户的虚拟文件系统结构,如果没有准备好的文件,考虑修改一些PAMiSub,类似的……/P> 这将是显而易见的出发点;下面的示例启动一个简单的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()
你可以很容易地从那里扩展。如何实现“文件”和“目录”完全取决于您。这将是一个显而易见的起点;下面的示例启动一个简单的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()
你可以很容易地从那里扩展。如何实现“文件”和“目录”完全取决于您。。这个问题可能属于超级用户。许多创建用户文件结构的代码已经用python编写,只是有一个不同的界面..这个问题可能属于superuser.comA很多创建用户文件结构的代码已经用python编写了,只是有一个不同的界面..twisted是否可以调用我自己的文件和目录函数,我在那里做任何事情,然后将结果返回给twisted?完全正确。一定要遵循扭曲的教程;延迟概念非常强大,但是您确实希望阅读文档以充分了解这种能力。非常棒,感谢您指出了正确的方向!我不确定从哪里开始:那么我如何覆盖或更改文件和目录的行为呢?在您的示例中,您提供了/作为正在提供的文件/文件夹,对吗?我需要提供一些虚拟的服务,文件结构保存在cassandra中,文件在S3上,twisted是否可以调用我自己的文件和目录函数,我在那里做任何事情,并将结果返回给twisted?准确地说。一定要遵循扭曲的教程;延迟概念非常强大,但是您确实希望阅读文档以充分了解这种能力。非常棒,感谢您指出了正确的方向!我不确定从哪里开始:那么我如何覆盖或更改文件和目录的行为呢?在您的示例中,您提供了/作为正在提供的文件/文件夹,对吗?我需要提供一些虚拟的东西,文件结构保存在cassandra中,文件在s3上