python-FTP程序

一、要求:

用户加密认证
允许同时多用户登录
每个用户有自己的家目录 ,且只能访问自己的家目录
对用户进行磁盘配额,每个用户的可用空间不同
允许用户在ftp server上随意切换目录
允许用户查看当前目录下文件
允许上传和下载文件,保证文件一致性
文件传输过程中显示进度条
附加功能:支持文件的断点续传(仅下载)

二、目录结构:

.
├── FTP #ftp程序
│ │
│  ├── bin # 可执行程序入口目录
│  │   ├── __init__.py
│  │   └── start.py # 主逻辑文件+启动入口
│ ├── conf # 配置文件目录
│  │   ├── __init__.py
│ │ └── settints.py # 配置文件目录
│ │
│ ├── core # 主程序目录
│ │ ├── __init__.py
│ │ ├── manager.py # manager 类
│ │ ├── client.py # 客户端 类
│ │ ├── server.py # 服务端 类
│ │ └── utilities_module.py # 公用模块 (登录验证、用户文件序列化)
│ ├── database # 用户信息数据存放目录
│ │ ├── admin.json # 管理员用户数据
│ │ └── xxx.json # xxx用户信息数据目录
│ ├── home # 家目录--存放用户文件
│ │ ├── wenjie
│ │ └── alex # 用户文件--
│ │
│ └── server_data # 服务端数据文件目录
│ ├── share
│ └── upload
└── README


三、流程效果图、程序效果图(请见附件)

四、程序运行事项
1、运行 server.py 后再运行 start.py
2、管理员:admin 123 {"name": "admin", "password": "202cb962ac59075b964b07152d234b70"}
3、用户 wenjie 123 {"username": "wenjie", "password": "202cb962ac59075b964b07152d234b70", "Size": "10M"}
alex 123 {"username": "alex", "password": "202cb962ac59075b964b07152d234b70", "Size": "10M"}
4、命令帮助:

ls --打印当前目录(ls后面参数,直接打印当前目录文件)
cd --切换目录 (cd 后面必须接目录参数:xxx用户\XXX文件)
mkdir --创建文件夹(mkdir 接目录名)
get -- 下载 (get 接目标文件目录:server_data\文件)
put -- 上传 (put 文件-server_data\目录)
quit --返回上级



五、总结

1、功能大部分基本实现、多用户并发、断点续传未实现
2、此次作业完成度未达到预期,遗留了很多问题;实际开发过程中还是很缓慢的,很多知识点运用上不熟练

六、代码

后续公布云盘地址

猜你喜欢

转载自www.cnblogs.com/alvin-jie/p/9186402.html
今日推荐