Ftp服務端及文件傳輸方法
【技術領域】
[0001]本發(fā)明涉及文件傳輸技術領域,特別是涉及一種FTP服務端及文件傳輸方法。
【背景技術】
[0002]文件傳輸協(xié)議(File Transfer Protocol,FTP)是互聯(lián)網(wǎng)(Internet)上用于控制文件雙向傳輸?shù)膮f(xié)議。同時,它也是一個應用程序(Applicat1n)。其中,基于不同的操作系統(tǒng)有不同的FTP應用程序,而所有這些應用程序都遵守該FTP進行文件的傳輸。
[0003]現(xiàn)有技術中,在基于FTP的文件傳輸方法,F(xiàn)TP客戶端每次僅能請求下載指定的某個文件,無法滿足用戶的多樣化文件傳輸需求,存在著靈活性差的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例解決的問題是提高文件傳輸?shù)撵`活性。
[0005]為解決上述問題,本發(fā)明實施例提供了一種文件傳輸方法,所述方法包括:
[0006]當與FTP客戶端建立連接成功時,接收來自所述FTP客戶端的文件下載指令;
[0007]根據(jù)所述文件下載指令中的下載目標標識,確定下載目標為目錄中的文件時,將所述目錄中的文件所對應的存儲路徑信息添加至下載列表中;
[0008]讀取所述下載列表中的文件存儲路徑以獲取對應的文件,并將所獲取的文件傳輸至所述FTP客戶端,直至將所述下載列表中的文件存儲路徑對應的所有文件傳輸至所述FTP客戶端。
[0009]可選地,所述下載目標為目錄中的文件包括所述目錄中的全部或部分文件。
[0010]可選地,所述方法還包括:
[0011]當將所述下載列表中的文件存儲路徑對應的所有文件傳輸至所述FTP客戶端中斷時,接收所述FTP客戶端發(fā)送的續(xù)傳指令,所述續(xù)傳指令中包括已獲取數(shù)據(jù)的長度信息;
[0012]當確定所述已獲取數(shù)據(jù)的長度小于所述下載列表中的存儲路徑對應的所有文件的數(shù)據(jù)長度總和時,從斷點處開始將未獲取的數(shù)據(jù)傳輸至所述FTP客戶端。
[0013]可選地,所述方法還包括:當將所述下載列表中的文件存儲路徑對應的所有文件傳輸至所述FTP客戶端完畢時,向所述FTP客戶端發(fā)送文件傳輸完畢的提示信息。
[0014]可選地,所述方法還包括:根據(jù)所述文件下載指令中的下載目標標識,確定下載目標為文件時,將所述文件的存儲路徑添加至所述下載列表中,讀取所述下載列表中的存儲路徑,獲取對應的文件并傳輸至所述FTP客戶端。
[0015]本發(fā)明實施例還提供了一種FTP服務端,所述FTP服務端包括:
[0016]接收單元,適于當與FTP客戶端建立連接成功時,接收來自所述FTP客戶端的文件下載指令;
[0017]下載目標確定單元,適于根據(jù)所述文件下載指令中的下載目標標識,確定下載目標是否為目錄中的文件;
[0018]列表生成單元,適于當確定下載目標是否為目錄中的文件時,將所述目錄中的文件所對應的存儲路徑信息添加至下載列表中;
[0019]傳輸單元,適于讀取所述下載列表中的文件存儲路徑以獲取對應的文件,并將所獲取的文件傳輸至所述FTP客戶端,直至將所述下載列表中的文件存儲路徑對應的所有文件傳輸至所述FTP客戶端。
[0020]可選地,所述下載目標為目錄中的文件包括所述目錄中的全部或部分文件。
[0021]可選地,所述接收單元,還適于當將所述下載列表中的文件存儲路徑對應的所有文件傳輸至所述FTP客戶端中斷時,接收所述FTP客戶端發(fā)送的續(xù)傳指令,所述續(xù)傳指令中包括已獲取數(shù)據(jù)的長度信息;
[0022]所述傳輸單元,還適于當確定所述已獲取數(shù)據(jù)的長度小于所述下載列表中的存儲路徑對應的所有文件的數(shù)據(jù)長度總和時,從斷點處開始將未獲取的數(shù)據(jù)傳輸至所述FTP客戶端。
[0023]可選地,所述FTP服務端還包括:提示單元,適于當將所述下載列表中的文件存儲路徑對應的所有文件傳輸至所述FTP客戶端完畢時,向所述FTP客戶端發(fā)送文件傳輸完畢的提示信息。
[0024]可選地,所述傳輸單元還適于根據(jù)所述文件下載指令中的下載目標標識,確定下載目標為文件時,將所述文件的存儲路徑添加至所述下載列表中,讀取所述下載列表中的存儲路徑,獲取對應的文件并傳輸至所述FTP客戶端。
[0025]與現(xiàn)有技術相比,本發(fā)明的技術方案具有以下的優(yōu)點:
[0026]上述的方案,可以在確定下載目標為指定目錄或者指定目錄下滿足預設條件的文件時,將所述目錄中所有文件的文件存儲路徑或者滿足預設條件的文件存儲路徑信息存儲在下載列表中,并通過循環(huán)讀取下載列表中的文件存儲路徑的信息獲取對應的文件并傳輸至FTP客戶端,可以實現(xiàn)一次性下載指定目錄下的所有或者部分文件,可以滿足用戶的多樣化文件下載需求,提升用戶的使用體驗。
[0027]進一步地,當將所述下載目錄中的文件存儲路徑對應的所有文件傳輸至FTP客戶端發(fā)生中斷時,可以根據(jù)FTP客戶端發(fā)送的續(xù)傳指令,從斷點處將所述FTP客戶端未獲取的數(shù)據(jù)傳輸至所述FTP客戶端,可以實現(xiàn)文件集合的斷點續(xù)傳,可以進一步提高文件傳輸?shù)撵`活性。
【附圖說明】
[0028]圖1是本發(fā)明實施例中的一種文件傳輸方法的流程圖;
[0029]圖2是本發(fā)明實施例中的一種文件傳輸系統(tǒng)的結(jié)構(gòu)示意圖;
[0030]圖3是本發(fā)明實施例中的另一種文件傳輸方法的結(jié)構(gòu)示意圖;
[0031]圖4是本發(fā)明實施例中的FTP服務端的結(jié)構(gòu)示意圖。
【具體實施方式】
[0032]為解決現(xiàn)有技術中存在的上述問題,本發(fā)明實施例采用的技術方案可以在確定下載目標為指定目錄或者指定目錄下滿足預設條件的文件時,將所述目錄中所有文件的文件存儲路徑或者滿足預設條件的文件存儲路徑信息存儲在下載列表中,可以實現(xiàn)一次性下載指定目錄下的所有或者部分文件,滿足用戶的多樣化文件下載需求。
[0033]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施例做詳細的說明。
[0034]圖1示出了本發(fā)明實施例中的一種文件傳輸方法的流程圖。如圖1所示的文件傳輸方法,可以包括:
[0035]步驟S101:當與FTP客戶端建立連接成功時,接收來自所述FTP客戶端的文件下載指令。
[0036]步驟S102:根據(jù)所述文件下載指令中的下載目標標識,確定下載目標為目錄中的文件時,將所述目錄中的文件所對應的存儲路徑信息添加至下載列表中。
[0037]步驟S103:讀取所述下載列表中的文件存儲路徑以獲取對應的文件,并將所獲取的文件傳輸至所述FTP客戶端,直至將所述下載列表中的文件存儲路徑對應的所有文件傳輸至所述FTP客戶端。
[0038]下面將對本發(fā)明實施例中的文件傳輸方法做進一步詳細的介紹。
[0039]為了便于理解,首先對本發(fā)明實施例中的文件傳輸系統(tǒng)作簡要的介紹。
[0040]請參見圖2所示,本發(fā)明實施例中的文件傳輸系統(tǒng)可以包括FTP服務端201和FTP客戶端202。其中,F(xiàn)TP服務端201和FTP客戶端202可以通過有線或者無線方式連接。
[0041]圖3示出了本發(fā)明實施例中的一種文件傳輸方法的流程圖。如圖3所示的文件傳輸方法,可以包括如下的步驟:
[0042]步驟S301:FTP客戶端與FTP服務端建立連接。
[0043]在具體實施中,在進行文件傳輸之前,F(xiàn)TP客戶端與FTP服務端可以首先建立連接。具體而言,F(xiàn)TP客戶端向FTP服務端提交自身的身份驗證信息,包括用戶名和密碼,F(xiàn)TP服務端則對FTP客戶端提交的身份驗證信息進行驗證,并在驗證通過時,F(xiàn)TP客戶端與FTP服務端成功建立連接,兩者之間可以進行文件的傳輸。
[0044]步驟S302:當與FTP服務端建立連接成功時,所述FTP客戶端向FTP服務端發(fā)送下載指令。
[0045]在具體實施中,F(xiàn)TP客戶端可以根據(jù)自身的需要,向FTP服務端請求獲取相應的文件。其中,F(xiàn)TP客戶端發(fā)送的下載指令為獲得文件指令一RETR指令。
[0046]例如,F(xiàn)TP客戶端需要從FTP服務端獲取一個文件時,可以向FTP客戶端發(fā)送RETR/a.b.com/dirl/filel的下載指令,即返回名為filel的文件;當FTP客戶端發(fā)送的下載指令為RETR/a.b.com/dir 1時,F(xiàn)TP客戶端向FTP服務端請求返回目錄dir 1下的所有文件;當FTP客戶端發(fā)送的下載指令為RERT/a.b.com/dirl/f ile*時,即FTP客戶端向FTP服務端請求返回目錄dirl下所有以file開頭的文件。其中,在請求目錄下滿足預設條件的文件時,下載指令中的為模式匹配符,當然,本領域的技術人員也可以根據(jù)實際的需要采用其他的匹配符,以實現(xiàn)更多、更靈活的模式匹配符,本發(fā)明在此不做限制。
[0047]步驟S303:所述FTP服務端根據(jù)所接收的下載指令,判斷下載目標是否為目錄中的文件;當判斷結(jié)果為是時,可以執(zhí)行步驟S304,反之,則執(zhí)行步驟S309。
[0048]在具體實施中,F(xiàn)TP服務端可以通過對FTP客戶端發(fā)送的下載指令進行解析,確定FTP客戶端的下載目標是一個文件,還是目錄中的所有文件,抑或是目錄中滿足預設條件的文件,即目錄中的部分文件。
[0049]步驟S304:所述FTP服務端將所述目錄中文件的存儲路徑添加至下載列表中。
[0050]在具體實施中,當FTP服務端在確定FTP客戶端的下載目標為目錄中的所有文件,或者是目錄中滿足預設條件的文件時,可以將對應文件的存儲路徑的信息添加至下載列表中,以在后續(xù)的步驟中逐個讀取對應的文件。
[0051]步驟S305:所述FTP服務端循環(huán)讀取所述下載列表中文件的存儲路徑,獲取對應為文件并傳輸至所述FTP客戶端。
[0052]在具體實施中,當將FTP客戶端發(fā)送的下載指令對應的所有文件的存儲路徑添加至所述下載列表中之后,F(xiàn)TP服務端可以逐條讀取所述下載列表中的文件的存儲路徑信息,從相應的存儲路徑獲取對應的文件并返回給FTP客戶端。
[0053]步驟S306:所述FTP客戶端接收所述FTP服務端傳輸?shù)奈募?br>[0054]在具體實施中,F(xiàn)TP客戶端在接收到FTP服務端傳輸?shù)奈募r,可以對FTP服務端傳輸?shù)奈募M行存儲,保存為本地文件。
[0055]在具體實施中,當FTP客戶端請求目錄下的所有文件,或者目錄下滿足預設條件的文件時,當將所請求的文件全部傳輸至FTP客戶端之后,F(xiàn)TP客戶端可以所下載的內(nèi)容保存在本地的一個文件中。
[0056]同樣以上述