標籤:一致性 知識 read 服務 目錄檔案 get set 目錄 命令
一、要求:
使用者加密認證
允許同時多使用者登入
每個使用者有自己的家目錄 ,且只能訪問自己的家目錄
對使用者進行磁碟配額,每個使用者的可用空間不同
允許使用者在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、此次作業完成度未達到預期,遺留了很多問題;實際開發過程中還是很緩慢的,很多知識點運用上不熟練
六、代碼
後續公布雲端硬碟地址
python-FTP程式