上傳——斷點續傳之理論篇

micDavid發表於2021-06-16
一、流與快取區
 
1.1  如何理解流?
 
        流是一種連線,一種管道,它建立了與物理檔案或網路相關聯的機制,方便讀寫檔案或者網路。當然還有其它型別的流。  
     
1.2  流的操作
 
      讀取:將資料從流傳輸到快取區,緩衝區就是記憶體中的一塊區域,程式碼中常用byte陣列。
      寫入:將資料從資料來源傳輸到流中。
      流用完後需要釋放資源,因為檔案或者網路連線都屬於非託管資源,需要手動釋放。
 
二、客戶端和伺服器的通訊
 
       http通訊,通過介面請求、響應。
 
三、何為斷點續傳
 
     從哪跌倒,就從哪爬起,顧名思義,從上次斷開的位置接著傳輸。
 
四、為什麼需要斷點續傳
 
     優點:針對大檔案且網路不太穩定的情況,斷點續傳能節省頻寬。
     缺點:增加額外的通訊
 
五、如何進行斷點續傳
      斷點續傳的解決方案,如下圖所示:
     

 

上圖中,主要描述了客戶端和伺服器通訊的情況

客戶端:

     1、需要知道上次斷點位置

     2、計算當前開始傳輸的位置

     3、傳輸檔案

如何傳輸檔案,比如分片還是不分片,是多執行緒還是不用多執行緒,這些都需要設計與考慮。如果用了多執行緒,就會增加問題的複雜度。當然用好了,好處也很多。

服務端:

    建立檔案的服務

    提供斷點位置的服務

    如果是分片傳輸,還要提供合併分片的服務

 

 

      

相關文章