天天看點

FTP-多線程斷點續傳下載下傳與上傳

一:FTP單線程斷點續傳:

FTP和傳統的HTTP協定有所不同,由于FTP沒有所謂的頭檔案,是以我們不能像HTTP那樣通過設定header向伺服器指定下載下傳區間

但是FTP協定提供了一個更好用的指令REST用于從指定位置恢複任務,同時FTP協定也提供了一個指令SIZE用于擷取下載下傳的檔案大小,有了這兩個指令,FTP斷點續傳也就沒有什麼問題。

FTP斷點續傳的原理和HTTP的斷點續傳原理差不多,在暫停時記錄檔案的停止位置,再次下載下傳時,先讀取記錄的位置,如果位置存在,則通過REST指令告訴伺服器從指定區間進行下載下傳。

二:FTP多線程斷點續傳

多線程下載下傳的原理和HTTP多線程下載下傳的原理差不多。先擷取檔案大小,然後根據線程數,對整個檔案進行分段下載下傳,在任務停止時,記錄每一條線程的暫停位置,重新開始下載下傳,每一條線程讀取對應的下載下傳記錄,然後每一線程從指定位置開始下載下傳。

和HTTP所不同的是,FTP并沒有提供檔案區間的API,是以,FTP在分段下載下傳中,隻有起始位置而沒有結束位置。

是以,你需要在指定位置手動停止線程。

ftp