天天看點

大檔案上傳和斷點續傳如何實作?

随着視訊網站和大資料應用的興起,特别是高清視訊、4K視訊、全景VR和的資料應用的到來,超大檔案上傳已經成為了日常的應用需求。

基于雲計算的架構,我們需要将各地的大資料上傳到雲平台進行存儲和處理,那麼,動辄幾個GB或者TB的大資料檔案如何上傳?在網絡抖動的情況下如何保障斷點續傳?如何通過多終端快速上傳?這是現實中常常遇到的問題。

在很多應用平台中,往往通過安裝自己開發的上傳控件來實作,但是移動端裝置并不适合,而且要相容各種類型的浏覽器也是一個具有挑戰性的問題。

無疑,最好的方式就是通過浏覽器直接上傳,目前已經有很多基于PHP或者Java程式來實作的上傳伺服器,然而在實際使用中你會會發現,這些基于腳本語言實作的上傳功能子產品性能很弱,一是不支援2GB以上的檔案上傳;二是無法支援斷點續傳;三是效率極低,單台伺服器最多支援幾十個并發上傳連接配接。

是以,我們為了解決這個問題,花費了很大精力自主用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 目錄下的說明手冊。

繼續閱讀