python作業:高級FTP程式

来源:http://www.cnblogs.com/mstzkot/archive/2017/11/01/7765773.html
-Advertisement-
Play Games

要求: 程式流程圖: 程式Readme: MiniFTP主要是由三部分組成:伺服器端、客戶端、管理端。本文主要就是介紹以上三部分內容。 系統初始配置 管理員賬號 用戶名:admin 密碼:password 用戶賬號: 用戶名:zhangsan 密碼:123 伺服器地址: IP:127.0.0.1 P ...


 

要求:

  1. 用戶加密認證
  2. 允許同時多用戶登錄
  3. 每個用戶有自己的家目錄 ,且只能訪問自己的家目錄
  4. 對用戶進行磁碟配額,每個用戶的可用空間不同
  5. 允許用戶在ftp server上隨意切換目錄
  6. 允許用戶查看當前目錄下文件
  7. 允許上傳和下載文件,保證文件一致性
  8. 文件傳輸過程中顯示進度條
  9. 附加功能:支持文件的斷點續傳

 

 

程式流程圖:

 

程式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值不改變。

  1. 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

 

以上僅為參考,希望不要照抄。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 今天練習angularjs的ng-change事件。 比如用戶作出選擇時,系統所指定的選項中,沒有用戶合適的選項。此時我們可以讓用戶填寫。 剛開始文本框是隱藏的。當用戶選擇了checkbox之後才會顯示出來。 在angularjs程式的model中IsVisible的值為false。 這樣子,程式在 ...
  • 1,同步電腦時間和北京時間 2,設置path地址為需要搶券的地址和搶券時間 搶券地址--> 搶券地址(註意不要漏掉http://或者https://) --> 搶券時間 時分 秒 3,點擊... ...
  • 之前 ,有想做一個文件管理頁面。 參考了 許多資料,終於完成了一個基於Asp.net MVC 的文件管理Demo.界面如下。 一,實現功能及相關技術 文件管理Demo基於Asp.NET MVC ,主要實現了 文件列表瀏覽,文件夾創建與刪除,文件夾以及文件重命名,文件與文件夾的複製、剪切、壓縮,文件與 ...
  • .net core已經發佈了2.0版本,相對於1.0的有了很大的完善,最近準備在項目中嘗試使用asp.net core,所以就進行了一些簡單的研究。 初識asp.net core分為以下幾個部分: 1、.net core SDK以及vs2017下載安裝 2、創建asp.net core項目 3、初識 ...
  • 1:做過圖像顯示的都知道,我們的圖片大部分都是壓縮過的,大部分為JPEG PNG BMP其中BMP格式是點陣形式,當圖片翻譯到記憶體之後無論壓沒壓縮過都會變成BMP格式放進記憶體,在這個過程中,圖片數據會幾倍的增大,就比如JPEG,一張1M大小的JPEG格式的圖片,翻譯到記憶體可能就會變成7倍左右,也就是 ...
  • C# 語言是在2000發佈的,至今已正式發佈了7個版本,每個版本都包含了許多令人興奮的新特性和功能更新。同時,C# 每個版本的發佈都與同時期的 Visual Studio 以及 .NET 運行時版本高度耦合,這也有助於開發者更好的學習掌握 C#,並將其與 Visual Studio 以及 .NET ... ...
  • 原文:https://www.stevejgordon.co.uk/asp-net-core-anatomy-part-3-addmvc 發佈於:2017年4月環境:ASP.NET Core 1.1 本系列前面兩篇文章介紹了ASP.NET Core中IServiceCollection兩個主要擴展方 ...
  • 1 環境搭建 1.1 Python安裝 1.2 MySQL環境搭建 1.3安裝MySQLdb 2 具體實現 2.1 登陸界面 2.2 註冊界面 2.3 具體實現部分代碼 1 環境搭建 1.1 Python安裝 本文具體實現部分Python環境:Python2.7.14,64位版本 具體安裝步驟見:P ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...