要求: 1.用户加密认证 2.允许同时多用户登录 3.每个用户有自己的家目录,且只能访问自己的家目录 4.对用户进行磁盘配额,每个用户的可用空间不同 5.允许用户在ftp server上随意切换目录 6.允许用户查看当前目录下的文件 7.允许上传和下载文件,并保证文件的一致性md5 8.文件传输过程中显示进度条 9.支持文件的断点续传
使用:
1.启动ftp_server.py
2.创建用户,输入:用户名(默认密码是zhurui)
3.启动FTP服务器
4.启动客户端ftp_client.py
5.输入用户名和密码:alex zhurui | william zhurui
6.与服务器server交互:
server服务端
bin下的文件
ftp_server.py
#_*_ coding:utf-8 _*_ #Author :simon import os import sys BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR) from core.main import Manager if __name__ == '__main__': Manager().run()
conf下的文件
accounts.ini(这个可以在执行中创建)
[william] password = 39da56d2e7a994d38b9aaf329640fc6e homedir = home/william quota = 10 [zhurui] password = 39da56d2e7a994d38b9aaf329640fc6e homedir = home/zhurui quota = 10 [simon] password = 39da56d2e7a994d38b9aaf329640fc6e homedir = home/simon quota = 10
settings.py
#_*_ coding:utf-8 _*_ # Author:Simon # Datetime:2019/8/14 11:00 # Software:PyCharm import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) ACCOUNTS_FILE = os.path.join(BASE_DIR, 'conf', 'accounts.ini') HOST = '127.0.0.1' PORT = 8080 MAX_CONCURRENT_COUNT = 10
core下的文件
main.py
# _*_ coding:utf-8 _*_ #Author:Simon from core.user_handle import UserHandle from core.server import Ftpserver class Manager(): def __init__(self): pass def start_ftp(self): '''启动ftp_server端''' server = Ftpserver() server.run() server.close() def create_user(self): '''创建用户''' username = input('请输入要创建的用户>:').strip() UserHandle(username).add_user() def quit_func(self): quit('get out...') def run(self): msg = '''