Requirements for developing a multi-user online FTP program :
- User encryption authentication (sever should have some user names and passwords)
- Allow simultaneous multi-user login (using socketserver to achieve multi-threading)
- Each user has his own home directory and can only access his own home directory
- Make disk quotas for users, and the available space for each user is different (set a variable)
- Allow users to switch directories at will on the ftp server
- Allow users to view files in the current directory
- Allow uploading and downloading of files to ensure file consistency (whether the file has been modified, MD5 verification)
- Display a progress bar during file transfer (resuming from a breakpoint f.seek)
- Additional features: support file resuming