4.1 - FTP文件上传下载
题目:开发一个支持多用户同时在线的FTP程序
要求:
1.用户加密认证
2.允许同时多用户登录
3.每个用户有自己的家目录,且只能访问自己的家目录
4.对用户进行磁盘配额,每个用户的可用空间不同
5.允许用户在ftp server上随意切换目录
6.允许用户查看当前目录下的文件
7.允许上传和下载文件,并保证文件的一致性md5
8.文件传输过程中显示进度条
9.支持文件的断点续传
-------
题目:基于线程开发一个FTP服务器:
要求:
1.在之前开发的FTP基础上,开发支持多并发的功能
2.不能使用SocketServer模块,必须自己实现多线程
3.必须用到队列Queue模块,实现线程池
4.允许配置最大并发数,比如允许只有10个并发用户 ------------------------------------------------------
结构:
.
├── client
│ ├── download 下载存放路径
│ │ ├── 1.jpg
│ │ └── 2.jpg
│ ├── ftp_client.py 客户端启动文件
│ └── upload 上传存放路径
│ ├── 11.jpg
│ ├── 1.jpg
│ ├── 22.jpg
│ ├── 2.jpg
│ ├── com.mp4
│ ├── python.txt
│ ├── test_argument.py
│ ├── test.py
│ └── test.txt
├── README
└── server
├── bin
│ └── ftp_server.py 服务端启动文件
├── conf
│ ├── accounts.ini 用户信息
│ └── settings.py 配置文件
├── core
│ ├── file_handle.py 文件处理模块
│ ├── logger.py logger模块
│ ├── main.py 主程序
│ ├── server.py server模块
│ └── user_handle.py 处理accounts.ini文件,增加用户,判断用户
├── home 用户的home目录
│ ├── alice
│ │ ├── 1.jpg
│ │ ├── 2.jpg
│ │ ├── com.mp4
│ │ └── test
│ │ └── 2.jpg
│ ├── alice_a
│ │ └── 2.jpg
│ └── lily
│ ├── 1.jpg
│ ├── 2.jpg
│ ├── tt
│ │ ├── 1.jpg
│ │ └── com.mp4
│ └── tt1
└── log
├── manager.log manager创建用户的记录
└── user.log 用户上传,下载记录 ------------------------------------------------------
使用:
1.终端启动 python3 ftp_server.py
2.创建用户,输入 username quota
3.启动ftp服务器
4.终端启动 python3 ftp_client.py -s 127.0.0.1 -p 8083 / 查看帮助: python3 ftp_client.py -h
5.输入用户名,密码; alice 123 lily 123 alice_a 123 有三次机会
6.与server交互:
6.1. get a.txt 下载文件
6.2. put a.txt 上传文件
6.3. ls 查询当前目录下的文件列表
6.4. mkdir test 创建文件夹
6.5. cd test 切换目录
6.6. rm a.txt/test 删除文件或空文件夹
github:
windows版本: https://github.com/alice-bj/ftp_windows
linux版本: https://github.com/alice-bj/ftp_linux
4.1 - FTP文件上传下载的更多相关文章
- Python 基于Python实现Ftp文件上传,下载
基于Python实现Ftp文件上传,下载 by:授客 QQ:1033553122 测试环境: Ftp客户端:Windows平台 Ftp服务器:Linux平台 Python版本:Python 2.7 ...
- 【FTP】FTP文件上传下载-支持断点续传
Jar包:apache的commons-net包: 支持断点续传 支持进度监控(有时出不来,搞不清原因) 相关知识点 编码格式: UTF-8等; 文件类型: 包括[BINARY_FILE_TYPE(常 ...
- java/struts/Servlet文件下载与ftp文件上传下载
1.前端代码 使用超链接到Struts的Action或Servlet <a target="_blank" href="ftpFileAction!download ...
- python 实现远端ftp文件上传下载
python 实现ftp上传下载 * 脚本需要传入两个参数,参数1为需要从远端ftp站点下载文件名称,参数2为已知需要下载的文件md5值,文件下载完成后会自动进行md5值校验 * 运行示例 [root ...
- java实现ftp文件上传下载,解决慢,中文乱码,多个文件下载等问题
//文件上传 public static boolean uploadToFTP(String url,int port,String username,String password,String ...
- ftp文件上传下载命令
介绍:从本地以用户wasqry登录的机器1*.1**.21.67上通过ftp远程登录到ftp服务器上,登录用户名是lte****,以下为使用该连接做的实验. 查看远程ftp服务器上用户lte**** ...
- ftp文件上传下载实用命令
连接 >ftp yourhost >user yourusername >password your password 顺利的话连接成功 >dir ;获取remote目录列表 ...
- Java 利用Apache Commons Net 实现 FTP文件上传下载
package woxingwosu; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...
- 3.2 - FTP文件上传下载
题目:开发一个支持多用户同时在线的FTP程序要求:1.用户加密认证2.允许同时多用户登录3.每个用户有自己的家目录,且只能访问自己的家目录4.对用户进行磁盘配额,每个用户的可用空间不同5.允许用户在f ...
随机推荐
- Python处理文件以及文件夹常用方法
1.创建文件并且写入 2.多行读取文件的方式 readlines() 3.一次读取全部内容 4.文件的删除 5.shutil 模块实现文件的复制 6.文件的重命名 7.获取文件的后缀名 8.pytho ...
- Python 列表的操作
list基本操作 #coding=utf-8 #列表 string = 'list' #字符串->列表 list1 = list(string) # ['l', 'i', 's', 't'] # ...
- php服务器环境变量
可以把一些配置写到apache或nginx的配置里,然后在代码里判断环境变量来实现开发环境和线上环境的切换. 比如在本地可以 SetEnv APP_ENV local线上则 SetEnv APP_EN ...
- 确定文件的位置--浏览文件夹对话框folderBrowserDialog
private void button1_Click(object sender, EventArgs e) { folderBrowserDialog1.ShowNewFolderButton = ...
- hdu6121 Build a tree 模拟
/** 题目:hdu6121 Build a tree 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6121 题意:n个点标号为0~n-1:节点i的父节点 ...
- go hmac使用
https://github.com/danharper/hmac-examples 94 func generateSign(data, key []byte) string { 95 mac := ...
- js学习笔记25----Event对象
Event : 事件对象,当一个事件发生的时候,和当前这个对象发生的这个事件有关的一些详细的信息都会被临时保存到一个指定的地方-event 对象,供我们在需要时调用. 事件对象必须在一个事件调用的函数 ...
- Yarn概述
转自:http://liujiacai.net/blog/2014/09/07/yarn-intro/ Yarn是随着hadoop发展而催生的新框架,全称是Yet Another Resource N ...
- 十步理解Sql
很多程序员视 SQL 为洪水猛兽.SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言.面向对象的程序语言.甚至是函数语言(尽管有些人认为 SQL 语言也是一种函数式语言) ...
- myeclipse10中对象无法点出下面的方法和属性
刚安装完最新的myeclipse4spring-10.6,发现通过对象无法点出下面的方法和属性,没有自动联想或自动补全,使用“Alt + /”也没得效果,解决方法如下: Window -> Pr ...