gpt4 book ai didi

python - Twisted - FTP 服务器的简单文件完成事件

转载 作者:太空宇宙 更新时间:2023-11-03 13:50:39 30 4
gpt4 key购买 nike

我想将 twisted 用于一些基本的 FTP 服务器,just like this example :

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

#pass.dat looks like this:
# jeff:bozo
# grimmtooth:bozo2

p = Portal(FTPRealm('./'), (AllowAnonymousAccess(), FilePasswordDB("pass.dat")))
f = FTPFactory(p)
reactor.listenTCP(21, f)
reactor.run()

...通过一个简单的自定义:我想在文件上传 (STOR) 成功完成时触发一个事件,以便我的自定义代码能够充分处理该文件。

我没有找到 FTPFactory 或 FTP 的文档来帮助我这样做。我应该重载 FTP 对象还是其他一些对象?如何连接一切?

我过去用 twisted 做过简单的自定义 HTTP 服务器,这很容易,但我几乎找不到关于 FTP 的资料。

最佳答案

首先,这只是对 Rakis 答案的修改。没有他的回答,这将不存在。他的那个对我的设置不起作用。也可能只是 API 发生了变化,因为这是 5 年后的事。

class MyFTP (ftp.FTP):

def ftp_STOR(self, path):

d = super(MyFTP, self).ftp_STOR(path)

def onStorComplete(d):
print 'STORED', repr(d), path
return d

d.addCallback(onStorComplete)

return d

f = ftp.FTPFactory( some_portal_object )
f.protocol = MyFTP

关于python - Twisted - FTP 服务器的简单文件完成事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9790121/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com