4GB以上超大文件上傳和斷點續傳服務器的實現

隨着視頻網站和大數據應用的普及,特別是高清視頻和4K視頻應用的到來,超大文件上傳已經成爲了平常的基礎應用需求。git

可是在不少狀況下,平臺運營方並無大文件上傳和斷點續傳的開發經驗,每每在網上找一些簡單的PHP或者Java程序來實現基本的上傳功能,然而在實際使用中會發現,這些基於腳本語言實現的上傳功能模塊性能很弱,一是不支持2GB以上的內容上傳;二是沒法支持斷點續傳;三是效率極低,單臺服務器最多支持幾十個併發上傳鏈接。github

當前咱們要搭建一個運營級的視頻服務平臺,在嘗試了各類產品均沒法知足要求,所以最後花精力自主用C++語言實現了這一高性能上傳服務器。 瀏覽器

項目地址:服務器

https://github.com/liufeihong/Hyper-Upload-Server 架構

Hyper Upload Server 超級上傳服務器 併發

這是一款超級文件上傳服務器,採用異步I/O架構,採用C++語言編碼實現。它支持4GB以上超大文件上傳和斷點續傳,支持Windows和Linux服務器平臺,支持任意格式的文件上傳,尤爲適合大的視頻網站應用。單臺服務器支持1000併發上傳進程,支持PC端和智能手機端主流的瀏覽器。 異步

主要特性性能

1. 服務器端採用異步I/O架設設計,具備高性能I/O處理能力,尤爲適用於超大文件上傳;大數據

2. 服務器端採用高效內存分配技術確保在運行過程當中服務器的內存開銷最小化;網站

3. 徹底採用標準協議實現,所以兼容幾乎全部的PC端和移動端瀏覽器;

4. 服務器端採用C++語言自主實現,對上傳文件的尺寸無限制,天生支持超大文件上傳。

   而基於PHP、JAVA等技術實現的文件上傳服務天生沒法支持超大文件上傳,沒法逾越2GB的最大文件尺寸瓶頸;

5. 服務器端採用無緩衝即時寫入方式,上傳數據寫入一步到位。不一樣於PHP、JAVA等技術實現方式須要兩步寫入;

6. 服務器端可跨平臺編譯運行,支持Windows和Linux平臺;

7. 高性能,單臺服務器支持1000個併發上傳進程;

8. 支持4GB以上超大文件上傳,文件大小不受限制;

9. 客戶端支持採用HTTP標準協議上傳;

10.支持斷點續傳,斷網、關機重啓均不受影響;

11.支持HTML5瀏覽器上傳進度實時顯示;

12.支持IE8及以上瀏覽器上傳進度顯示;

13.支持查看客戶端在線鏈接, 查看方法: http://ip:port/lists

14.多瀏覽器兼容,包括Chrome,Firefox,Safari,IE,Opera,Edge; 

安裝 

第一步:解壓文件到一個硬盤目錄,例如d:\UploadServer 

第二步:修改配置文件

         修改d:\UploadServer\conf\config.xml,文件裏的目錄設置,

         將全部 dir= 變量指向的目錄修改成硬盤上的真實目錄,若是沒有就按配置文件建立;       

第三步:安裝服務

      執行cmd打開命令行窗口按步驟輸入如下命令:

      d:  <br/>

      cd UploadServer

      HYFileServer.exe -i  

第四步:啓動服務

    打開系統的服務管理器,找到Hyper Http Upload Service服務啓動它。

第五步:在瀏覽器裏輸入 http://127.0.0.1:8080 查看服務器運行是否正常

    若是上傳頁面正常顯示說明安裝成功

    點擊其中一個上傳文件連接 按鈕來上傳一個文件。

    若是要在其它主機上訪問上傳服務器頁面,請將127.0.0.1用安裝服務器的IP地址取代。

    若是外部機器還不能訪問,請檢查防火牆的設置,看一下默認的8080端口是否開啓。

     

第六步:若是要進一步瞭解上傳服務器,請查看 d:\UploadServer\doc\文件上傳服務器使用手冊.pdf 文件。

– Linux 下執行安裝

./hyupdsrv

若是要做爲守護進程,執行

./hyupdsrv -d 

技術文檔

請查看 doc 目錄下的說明手冊。

相關文章
相關標籤/搜索