1

さまざまなユーザーがログインできるPythonを使用してFTPサーバーをセットアップするように求められました。ログインに応じて、さまざまなファイル構造が表示されます。

構造の一部は読み取り専用になり、別の部分は書き込み、読み取り、作成、および削除されます。

ファイル構造とファイルはサーバー上に存在せず、ユーザーが外部サーバーにクエリを実行してフォルダーを展開するときに、怠惰な方法で構築する必要があります。

サーバーは、外部からFTPインターフェイス/プロトコルを模倣する必要があると思いますが、内部ではまったく異なる動作をします。

これを機能させるためのある種の時間スケールを提供する必要があるので、これがどれほど大きなまたは難しい仕事になるのか疑問に思いました。

すでにこのようなものはありますか?誰かが以前に似たようなことをしたことがありますか?

この種のモデルを実装しようとすることの明らかな問題はありますか?

4

2 に答える 2

4

twistedプロジェクトは、開始するのに明白な場所です。次の例では、パスワードファイルに対してユーザーを認証するだけでなく、匿名アクセスも許可する単純な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()

そこから簡単に拡張できます。「ファイル」と「ディレクトリ」をどのように実装するかは完全にあなた次第です。

于 2012-09-24T10:13:15.793 に答える
0

なぜPythonなのか?私はPythonがそれと何の関係があるのか​​を意味しますか?ログイン時にユーザー固有の仮想ファイルシステム構造を作成できるPAMモジュールを探します。準備ができていない場合は、pam_mountなどを変更することを検討してください。

http://pam-mount.sourceforge.net

于 2012-09-24T10:12:10.833 に答える