Pyftpdlib
Python FTP Server library (pyftpdlib) is a free FTP server library providing a portable interface to easily write asynchronous FTP servers with Python. It is currently the most complete RFC-959 FTP server implementation available for Python programming language.
Features
- Support for recent FTP commands like MLSD and MLST (RFC-3659).
- Support for FTPS (FTP over TLS/SSL, still experimental and provided as a demo script).
- Support for FXP, site-to-site transfers.
- Support for IPv6 (RFC-2428).
- NAT/Firewall support with PASV/EPSV passive mode connections.
- Bandwidth throttling.
- Support for resumed transfers.
- Per-user permissions configurability.
- Maximum connections limit.
- Per-source-IP limits.
- Configurable idle timeouts for both control and data channels.
- Compact: the entire library is distributed in a single file (ftpserver.py).
- Entirely written in pure Python, no third party modules are used. IT Works on any system where select() or poll() is available.
- Extremely flexible system of "authorizers" able to manage both "virtual" and "real" users on different platforms (Windows, UNIX, OS X).