作业:开发一个支持多用户在线的FTP程序

要求:

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

 

之前作业的链接地址:https://www.cnblogs.com/hukey/p/8909046.html     这次的重写是对上次作业的补充,具体实现功能点如下:

README

# 作者介绍:
    author: hkey

# 博客地址:
    https://www.cnblogs.com/hukey/p/10182876.html
    
# 功能实现:

    作业:开发一个支持多用户在线的FTP程序

    要求:

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

# 目录结构:
            
FTP
├── ftp_client/        # ftp客户端程序
│   └── ftp_client.py    # 客户端主程序
└── ftp_server/        # ftp服务端程序
    ├── bin/
    │   ├── __init__.py
    │   └── start.py    
    ├── conf/        # 配置文件目录
    │   ├── __init__.py
    │   ├── settings.py
    │   └── user.list    # 记录注册用户名
    ├── db/            # 用户数据库
    ├── home/        # 用户家目录
    ├── logs/        # 记录日志目录
    └── modules/    # 程序核心功能目录
        ├── auth.py    # 用户认证(注册和登录)
        ├── __init__.py
        ├── log.py    # 日志初始化类
        └── socket_server.py    # socket网络模块

                
# 功能实现:
    1. 实现了用户注册和登录验证(新增)。
    2. 用户注册时,将用户名添加到 conf/user.list里并创建home/[username],为每个用户生成独立的数据库文件 db/[username].db
    2. 每个用户的磁盘配额为10M, 在conf/settings.py 中声明, 可以修改
    3. 本程序适用于windows,命令:cd / mkdir / pwd / dir / put / get
    4. 实现了get下载续传的功能:
            服务器存在文件, 客户端不存在,直接下载;
            服务器存在文件, 客户端也存在文件,比较大小, 一致则不传,不一致则追加续传;
    5. 实现日志记录(新增)
            
# 状态码:

400 登录验证(用户名或密码错误)
401 注册验证(注册的用户名已存在)
402    命令不正确
403    空间不足
405 续传
406 get(客户端文件存在)


200 登录成功
201 注册成功
202 命令执行成功
203 文件一致


000 系统交互码
README

相关文章: