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).

See also