pytftpdlibをとりあえずインストールしてみた。easy_installかダウンロードして"setup.py install"でok。バージョンは現時点で最新の0.2.0。
easy_install http://pyftpdlib.googlecode.com/files/pyftpdlib_0.2.0.tar.gz
GoogleCodeのページにクイックスタートが載っているので、これを試してみた。
from pyftpdlib import ftpserver authorizer = ftpserver.DummyAuthorizer() authorizer.add_user('hogeuser', 'hogepass', 'F:/pyftpd/', perm=('r', 'w')) ftp_handler = ftpserver.FTPHandler ftp_handler.authorizer = authorizer address = ("192.168.11.3", 21) ftpd = ftpserver.FTPServer(address, ftp_handler) ftpd.serve_forever()
「ftpでネットワークの速度を測定する」を参考に6GBのファイルを、100MbpsのLAN環境で転送して速度を調べてみた。
C:\>ftp 192.168.11.3 Connected to 192.168.11.3. 220 pyftpdlib 0.2.0 ready. User (192.168.11.3:(none)): hogeuser 331 Username ok, send password. Password: 230 Login successful. ftp> dir 200 PORT command successful. 125 Data connection already open. Transfer starting. -rw-rw-rw- 1 owner group 6000000000 Oct 29 21:35 速度計測用6GB.dat 226 Transfer complete. ftp: 78 bytes received in 0.04Seconds 1.95Kbytes/sec. ftp> bin 200 Type set to: Binary. ftp> get 速度計測用6GB.dat nul 200 PORT command successful. 125 Data connection already open. Transfer starting. 226 Transfer complete. ftp: 6000000000 bytes received in 3499.78Seconds 1714.39Kbytes/sec.
OSの設定がよろしくないせいでパフォーマンスが出てない気がする。まあ、これだけ出れば十分。日本語も化けてないみたいだし、2GB以上のファイルも扱えるみたいだし、良さそうだなこれ。