この例のように、いくつかの基本的なFTPサーバーにtwistedを使用したいと思います。
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()
... 1つの簡単なカスタマイズで:ファイルのアップロード(STOR)が正常に完了したときにイベントを発生させて、カスタムコードがこのファイルを適切に処理できるようにします。
これを行うのに役立つFTPFactoryまたはFTPのドキュメントは見つかりませんでした。FTPオブジェクトまたは他のオブジェクトをオーバーロードする必要がありますか?すべてを配線する方法は?
私は過去にひねりを加えた単純なカスタムHTTPサーバーを作成しましたが、それはとても簡単でしたが、FTPに関する資料はほとんど見つかりませんでした。