pyftpdlib で簡易FTPサーバーを立てる

簡易的に FTP サーバーをたてるときにすごく楽。構築方法はググれば簡単だけど、いちおうまとめておく。
公式ドキュメントの参考::pyftpdlib - Python FTP server library - Google Project Hosting

導入

pip でいいです

pip install pyftpdlib

構築

で、たとえば ftp.py を作成する。この手順は上記の公式ドキュメントとほぼ同じ

from pyftpdlib import ftpserver

authorizer = ftpserver.DummyAuthorizer()
# 第3引数の Path は FTP サーバーのルートになる
authorizer.add_user('hoge_user', 'hoge_password', '/home/atasatamatara/ftp/', perm=('elradfmw'))
ftp_handler = ftpserver.FTPHandler
ftp_handler.authorizer = authorizer
# アドレスとポート
address = ("192.168.56.101", 10021)
ftpd = ftpserver.FTPServer(address, ftp_handler)
ftpd.serve_forever()

FTP サーバーのディレクトリを切っておく。書き込みできないとファイルストレージとして機能しないので権限もつけておく。とりあえず 777 にしちゃったけど。

# ディレクトリを作成
mkdir ~/ftp
# 書き込みできるようにパーミッション変更
chmod 777 ftp

これだけ。超簡単!この場合は FTP サーバーのルートは /home/atasatamatara/ftp です。

接続

なんらかの FTP クライアントから接続しましょう。もちろん FTP サーバーのルートは /home/atasatamatara/ftp にした場合、 FTP 側からは / で見えます。