?
要求:
- 用戶加密認證
- 允許同時多用戶登錄
- 每個用戶有自己的家目錄 ,且只能訪問自己的家目錄
- 對用戶進行磁盤配額,每個用戶的可用空間不同
- 允許用戶在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
?
以上僅為參考,希望不要照抄。