python作业:高级FTP程序
要求:
- 用户加密认证
- 允许同时多用户登录
- 每个用户有自己的家目录 ,且只能访问自己的家目录
- 对用户进行磁盘配额,每个用户的可用空间不同
- 允许用户在ftp server上随意切换目录
- 允许用户查看当前目录下文件
- 允许上传和下载文件,保证文件一致性
- 文件传输过程中显示进度条
- 附加功能:支持文件的断点续传
程序流程图:
程序Readme:
MiniFTP主要是由三部分组成:服务器端、客户端、管理端。本文主要就是介绍以上三部分内容。
系统初始配置
管理员账号
用户名:admin 密码:password
用户账号:
用户名:zhangsan 密码:123
服务器地址:
IP:127.0.0.1 Port:8808
服务器端
服务器端主要是处于长期运行监控状态。在调用启动之后,即无需再次操作。
涉及文件目录:
Bin文件夹:主要是放置的服务器启动文件,运行该文件夹下的start文件即可启动服务器
Core文件夹:主要存放服务器程序的核心部分,涉及文件的作用如下:
heart.py 主要是服务器与终端的连接方式设定,内部设有相应功能模块
Record.py 此文件是设定的服务器log日志显示和存储的形式
Data文件夹:主要是存放数据,涉及的文件夹和文件作用如下:
Conf文件夹:存放configure.py文件,此文件作用是默认参数配置,默认内容如下图:
此处存放有当前服务器监控的地址和端口,可更改此处来实现实际需要。
另一个较为重要的是管理员的账号和密码,此程序暂不支持更改管理员账号和密码,但管理员账号和密码是由管理员程序使用的,普通用户程序使用无效。
Docs文件夹:此文件夹主要存放的是客户上传到服务器的文件,存放的原则是按照用户名来创建相应的文件夹。
Log文件夹:此文件夹下存放的是系统日志,系统运行之后会按照日期生成对应的日志文件,文件名形式为:年-月-日.txt
Users文件夹:此文件夹下存在两个文件,一个是Quota.txt,存放的是用户当前允许使用的配额。一个是UserAuth.txt,存放的是注册用户的信息。
客户端:
组成:
客户端部分涉及到的是MiniClient,此文件夹下主要是有Bin和Core两个文件夹组成。
Bin文件夹下放置程序开始的文件Start.py;Core文件夹下放置程序的核心文件CCore.py
功能:
客户端主界面如下:
普通用户主要涉及以下功能:
输入错误的命令会得到相应的命令提示,输入help也会得到相应的命令提示,但仅为简单命令提示,如图:
具体命令格式请参考如下说明:
1、 put,上传文件
语法: put 文件名
PS. 此处的进度条仅支持在cmd环境下显示。
文件上传支持断点续传,即客户端在上传期间,出现错误导致上传未完成,再次登录并上传未完成文件时,系统会继续传输。前提是文件MD5值不改变。
- get 下载文件
语法: 1、 get 原文件名 目标文件地址和目标文件名
2、get 原用户名
此处的进度条仅支持在cmd环境下显示。
不指定下载目录,则系统自动选择当前运行文件夹
提供了目的文件地址的,会自动下载到指定目录
2.创建目录:
语法: mkdir 文件夹名
3.删除目录
语法:rm 文件夹名/文件名
4.遍历当前目录的相关信息
语法:ls
5.切换目录
语法:cd 文件夹名
若需返回上层目录,则可以使用 cd ..来进行切换
6.显示当前所在目录的信息
语法:pwd
若需要退出,可直接输入“bye”退出程序
管理端
组成:
管理端部分涉及到的是MiniAdmin,此文件夹下主要是有Bin和Core两个文件夹组成。
Bin文件夹下放置程序开始的文件start.py;Core文件夹下放置程序的核心文件ACore.py
功能:
管理员需要使用专用端与服务器进行通信,管理员界面显示的主要功能如下:
1、 注册用户
可注册允许登录ZFTP的普通用户账号
2、 删除用户
可删除当前已存在的普通用户账号
3、 查看用户
可查看当前已存在的普通用户账号。
4、 修改配额
可修改注册用户的空间配额值
5、 退出
退出系统
目前不支持管理员更改自身的用户名和密码。
已修复BUG
1、 将客户端端口号规范至合理范围(0-65535)。
2、 断点续传方面,解决传输终端后再次传输引起的非正常MD5值不一致问题。
3、 断点续传方面,解决客户端在使用非法文件替换合法文件引起MD5值不一致后,再次用合法文件传输仍旧出现MD5不一致的情况。
4、 解决传输超过空间限额的文件时引起的系统崩溃。
附:断点续传简要说明
1、 首先使用客户端连接至服务器
2、 上传文件并终端客户端
3、 重新登录服务器:
4、 重新进行上传
5、 若上传文件名一样但是内容不一样的文件,则会报错:
服务器报以下提示:
客户端报以下提示:
代码链接:
链接:http://pan.baidu.com/s/1pKEXw5X 密码:xikg
链接: https://pan.baidu.com/s/1ggSgW75 密码: scgf
以上仅为参考,希望不要照抄。
转载于:https://www.cnblogs.com/mstzkot/p/7765773.html
python作业:高级FTP程序相关推荐
- python作业高级FTP(第八周)
作业需求: 1. 用户加密认证 2. 多用户同时登陆 3. 每个用户有自己的家目录且只能访问自己的家目录 4. 对用户进行磁盘配额.不同用户配额可不同 5. 用户可以登陆server后,可切换目录 6 ...
- python作业程序设计_Python程序设计基础【实境编程】高校邦作业课后答案
Python程序设计基础[实境编程]高校邦作业课后答案 更多相关问题 A.takeB.holdC.loseD.make 下列有关湖泊.水库水质取样要求的说法,表述不正确的是().A.大中型湖库,平均水 ...
- Python代写CSSE1001/7030 python程序作业、代做python CSSE1001/7030程序作业、 代写CSSE1001/7030 python 作业...
Python代写CSSE1001/7030 python程序作业.代做python CSSE1001/7030程序作业. 代写CSSE1001/7030 python 作业 Uno++ Assignm ...
- 下列python语言、返回结果不是uc_MKAN1-UC 5103作业代写、代做Analytics作业、Java,Python,c/c++程序语言作业代做...
MKAN1-UC 5103作业代写.代做Analytics作业.Java,Python,c/c++程序语言作业代做 日期:2020-05-21 11:08 Marketing Analytics Sp ...
- python是什么意思中文、好学吗-学习python难吗?是不是越低级的程序越难学,越高级的程序越简单?...
原标题:学习python难吗?是不是越低级的程序越难学,越高级的程序越简单? Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言, ...
- 【python练习】基于socket的FTP程序 v1.1.0(支持多用户)
增加功能 1.在FTP(1.0.0)的基础上,支持了多并发的功能 2.允许配置最大并发数,比如允许只有10个并发用户 程序功能: 本程序模拟实现了一个FTP程序: 1.程序分为客户端和服务端 2.用户 ...
- python 字典练习 记录学生是否交作业的小程序
#记录学生是否交作业的小程序 #包括:学生名字.日期.状态 1 data={ 2 'taotao':{ 3 '2018-6-3':'已交', 4 '2018-6-4':'未交', 5 '2018-6- ...
- python是高级动态编程语言-python是一种跨平台、开源、免费的高级动态编程语言,对么...
python是一种跨平台.开源.免费的高级动态编程语言,对.python具有简单.易学.速度快.免费.开源.可移植性.可扩展性.丰富的库等优点.python语言极其容易上手,它是一种代表简单主义思想的 ...
- 无所不能的python是如何解决程序员的终身大事的?
Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理 ...
最新文章
- 降低函数之间的耦合度
- c++ -O1,-O2,-O3资料整理
- python基本使用-Python time库基本使用方法分析
- VS 2008 Web Site Project编译和发布速度提高办法
- matlab二次二阶距,用Matlab改进一次二阶矩法程序.doc
- 有了SDS,硬件还重要吗?
- 用几何语言表示线段ab的中点c,做完这30道精选题,你的几何图形绝对满分!
- selenium模拟登陆LinkedIn
- c3p0连接池配置说明
- 清零软件解决连供打印机喷嘴断墨和堵塞
- 10年测试经验的性能测试工程师简历模板你见过吗?
- 数据库mysql实训报告_数据库实训报告.doc
- 【leetcode】Reaching Points
- 使用electron-buil将vue打包成exe并生成安装包
- Python爬虫之爬取酷狗音乐歌曲
- Samba服务器搭建,win10拒绝访问解决方法
- 正则表达式(一) search
- 一个金融行业站SEO优化方案
- 去掉PPT英文字体下面的红线
- pip安装wxpython报错traceback_使用源码编译wxpython-基于python2.7
热门文章
- 2017/3/8 函数指针/事件/委托....
- 常用FTP命令 1. 连接ftp服务器
- Asp.net MVC 的一些总结(二)——图片显示
- 九度OJ 1437 To Fill or Not to Fill -- 贪心算法
- 《c陷阱与缺陷》笔记--注意边界值
- poj 3256(DFS)
- MFC程序打开控制台
- 英语作业介绍一项发明计算机,介绍电脑的发明的英语作文
- html div父集子集,抛砖引玉css系列---根据父元素包含的子元素个数,实现不同的样式...
- mysql两者之间_Django和MySQL - 两者之间的数据是不同的