隨著視訊網站和大資料應用的普及,特別是高清視訊和4K視訊應用的到來,超大檔案上傳已經成為了日常的基礎應用需求。
但是在很多情況下,平臺運營方並沒有大檔案上傳和斷點續傳的開發經驗,往往在網上找一些簡單的PHP或者Java程式來實現基本的上傳功能,然而在實際使用中會發現,這些基於指令碼語言實現的上傳功能模組效能很弱,一是不支援2GB以上的內容上傳;二是無法支援斷點續傳;三是效率極低,單臺伺服器最多支援幾十個併發上傳連線。
當前我們要搭建一個運營級的視訊服務平臺,在嘗試了各種產品均無法滿足要求,因此最後花精力自主用C++語言實現了這一高效能上傳伺服器。
專案地址:
http://git://10.168.4.241/up6/web/asp.net.git
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服務啟動它。
第五步:在瀏覽器裡輸入 127.0.0.1:8080 檢視伺服器執行是否正常
如果上傳頁面正常顯示說明安裝成功
點選其中一個上傳檔案連結 按鈕來上傳一個檔案。
如果要在其它主機上訪問上傳伺服器頁面,請將127.0.0.1用安裝伺服器的IP地址取代。
如果外部機器還不能訪問,請檢查防火牆的設定,看一下預設的8080埠是否開啟。
第六步:如果要進一步瞭解上傳伺服器,請檢視 d:\UploadServer\doc\檔案上傳伺服器使用手冊.pdf 檔案。
– Linux 下執行安裝
./hyupdsrv
如果要作為守護程式,執行
./hyupdsrv -d
詳細配置可以參考我寫的這篇文章:http://blog.ncmem.com/wordpress/2019/08/09/%e5%be%80%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e4%bc%a0%e5%a4%a7%e6%96%87%e4%bb%b6/
歡迎入群一起討論:374992201
本作品採用《CC 協議》,轉載必須註明作者和本文連結