Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 实现FTP接口/协议_Python_Ftp_Ftp Server - Fatal编程技术网

Python 实现FTP接口/协议

Python 实现FTP接口/协议,python,ftp,ftp-server,Python,Ftp,Ftp Server,我被要求使用python设置一个FTP服务器,不同的用户可以登录到该服务器,并且根据他们的登录将显示不同的文件结构 结构的一部分将是只读的,另一部分将是写、读、创建和删除的 服务器上不存在文件结构和文件,当用户通过查询外部服务器扩展文件夹时,必须以惰性方式构建文件结构和文件 我想,服务器需要从外部模拟FTP接口/协议,但内部工作方式完全不同 我想知道这项工作有多大或有多困难,因为我需要提供一些时间尺度来让它工作 外面已经有类似的东西了吗?以前有人做过类似的事情吗 尝试实现这种模型有什么明显的问题

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