UnboxFTPDをリファクタリングした


Django用のFTPDアプリケーション。一年ほど書いてその後放置気味だったけど、リファクタリングした。
PythonDjangoの知識が前に比べてかなりついているので、コードも全然違ったものに。
自宅で動いてるのはもっとカスタマイズされてたりするのだけど、汎用ということでいろいろ自重しました。
bitbucketに上げてます。
tokibito / unboxftpd — Bitbucket
FTPDの機能を提供してくれているpyftpdlibには感謝。

つかいかた

  1. ダウンロードしてプロジェクト内に配置
  2. INSTALLED_APPSにunboxftpdを追加
  3. manage.py syncdbしてFTPユーザなどのテーブルを作る
  4. 管理画面でFTPのグループ、ユーザを作る
  5. manage.py runftpdでFTPDを起動する

以上です。できるだけ各種ハンドラはプラガブルになるよう書いてます。feeds.pyにFTPログのフィードクラスがあったりします。
Windowsでftpdを起動すると文字コードの問題で日本語パスがうまくいかないかも。
気が向いたらちゃんとドキュメントっぽいもの作ります。