一種文件傳輸方法及電子設備的制造方法
【專利摘要】本發明實施例提供一種文件傳輸方法及電子設備,用于解決現有技術中無法為客戶端提供部分視頻內容的缺陷,該方法應用于緩存服務器,該方法包括:接收客戶端發送的攜帶有第一參數的文件片段獲取請求;其中,文件片段獲取請求用于請求獲得第一文件中的部分數據片段,第一參數用于表征部分數據片段位于第一文件中的字節段的位置,文件片段獲取請求為與緩存服務器對應的源站服務器無法處理的請求;基于文件片段獲取請求,生成與文件片段獲取請求對應的range請求;將range請求發送給源站服務器,以使源站服務器根據range請求從存儲的第一文件中確定部分數據片段;接收源站服務器發送的部分數據片段;將部分數據片段發送給客戶端。
【專利說明】
一種文件傳輸方法及電子設備
技術領域
[0001]本發明實施例涉及通信技術領域,尤其涉及一種文件傳輸方法及電子設備。
【背景技術】
[0002]在內容分發網絡(Content Delivery Network,Q)N)系統中,通過均衡負載策略,一般將客戶端的數據請求引導到就近的緩存服務器中,例如請參見圖1,在一CDN網絡中,為客戶端I分配的就近的緩存服務器是緩存服務器A,當緩存服務器A接收到客戶端I發送的文件獲取請求且緩存服務器A未緩存客戶端I所需要的文件時,緩存服務器A會將該文件獲取請求發送給與緩存服務器A對應的源站服務器I,即通過回源的方式向源站服務器I請求客戶端I需要的文件。
[0003]在實際中存在這樣一種情形,當客戶端I在播放視頻的過程中,用戶可能會拖動播放進度條以選擇自己希望觀看的部分視頻內容,例如用戶通過拖動播放進度條而選擇從正在播放的視頻的第10分鐘起開始觀看,那么在用戶進行拖動播放進度條的操作之后,客戶端I會重新生成一文件獲取請求以請求獲得從第10分鐘開始的視頻文件,而該文件獲取請求中包括一特定參數,該特定參數用于表明客戶端I請求的是部分視頻文件以及該部分視頻文件究竟是哪一部分,例如完整的視頻文件包括10000字節,而用戶希望觀看的是從第789字節-10000字節的部分視頻文件,而源站服務器I對包括該特定參數的請求卻不支持識另IJ,所以還是會將完整的視頻文件發送給緩存服務器A,導致客戶端最終接收到的卻是完整的視頻文件而又會從頭開始播放,卻無法從用戶希望觀看的位置開始播放,影響用戶的觀看感受,同時,由于是將完整的視頻文件全部傳輸給客戶端I,傳輸的數據量也較多,浪費傳輸帶寬資源。
【發明內容】
[0004]本發明實施例提供一種文件傳輸方法及電子設備,用以解決現有技術中無法為客戶端提供部分視頻內容的缺陷,實現可為客戶端提供部分視頻內容的目的,獲得減少數據量傳輸進而節約帶寬資源的技術效果。
[0005]本發明實施例提供一種文件傳輸方法,包括:
[0006]緩存服務器接收客戶端發送的攜帶有第一參數的文件頻段獲取請求;其中,所述文件片段獲取請求用于請求獲得第一文件中的部分數據片段,所述第一參數用于表征所述部分數據片段位于所述第一文件中的字節段的位置,所述文件獲取請求為與所述緩存服務器對應的源站服務器無法處理的請求;
[0007]所述緩存服務器基于所述文件片段獲取請求,生成與所述文件片段獲取請求對應的range請求;
[0008]所述緩存服務器將所述range請求發送給源站服務器,以使所述源站服務器根據所述range請求從存儲的所述第一文件中確定所述部分數據片段;
[0009]所述緩存服務器接收所述源站服務器發送的所述部分數據片段;
[0010]所述緩存服務器將所述部分數據片段發送給所述客戶端。
[0011]本發明實施例提供一種電子設備,包括:
[0012]第一接收模塊,用于接收客戶端發送的攜帶有第一參數的文件片段獲取請求;其中,所述文件片段獲取請求用于請求獲得第一文件中的部分數據片段,所述第一參數用于表征所述部分數據片段位于所述第一文件中的字節段的位置,所述文件片段獲取請求為與所述緩存服務器對應的源站服務器無法處理的請求;
[0013]生成模塊,用于基于所述文件片段獲取請求,生成與所述文件片段獲取請求對應的range請求;
[0014]第一發送模塊,用于將所述range請求發送給源站服務器,以使所述源站服務器根據所述range請求從存儲的所述第一文件中確定所述部分數據片段;
[0015]第二接收模塊,用于接收所述源站服務器發送的所述部分數據片段;
[0016]第二發送模塊,用于將所述部分數據片段發送給所述客戶端。
[0017]本發明實施例提供的文件傳輸方法及電子設備,在緩存服務器接收到客戶端發送的攜帶有第一參數的文件片段獲取請求時,為了避免與緩存服務器對應的源站服務器由于無法處理該文件片段獲取請求而將完整的第一文件發送給緩存服務器,緩存服務器可以基于文件片段獲取請求生成源站服務器能夠處理的range請求,通過將生成的range請求發送給源站服務器可以使得源站服務器根據range請求從第一文件中確定客戶端所需要的部分數據片段,并且在接收到源站服務器發送的部分數據片段之后可以將其轉發給客戶端,以使得客戶端可以獲得第一文件中的部分數據片段而并非是完整的第一文件,進而通過播放部分數據片段可以讓用戶從希望觀看的位置開始觀看,例如可以從用戶拖動播放進度條之后的位置開始播放,這樣可以盡量滿足用戶的實際觀看需求,同時,由于無需再將完整的第一文件全部發送給客戶端,而只將第一文件中的部分數據片段發送給客戶端,進而可以減少數據量的傳輸,提高帶寬的利用率。
【附圖說明】
[0018]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域的普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0019]圖1現有技術中客戶端、緩存服務器和源站服務器之間的連接示意圖;
[0020]圖2為本發明中文件傳輸方法的流程圖;
[0021 ]圖3為本發明中電子設備的結構示意圖。
【具體實施方式】
[0022]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,并不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0023]本發明實施例提供的文件傳輸方法及電子設備,在緩存服務器接收到客戶端發送的攜帶有第一參數的文件片段獲取請求時,為了避免與緩存服務器對應的源站服務器由于無法處理該文件片段獲取請求而將完整的第一文件發送給緩存服務器,緩存服務器可以基于文件片段獲取請求生成源站服務器能夠處理的range請求,通過將生成的range請求發送給源站服務器可以使得源站服務器根據range請求從第一文件中確定客戶端所需要的部分數據片段,并且在接收到源站服務器發送的部分數據片段之后可以將其轉發給客戶端,以使得客戶端可以獲得第一文件中的部分數據片段而并非是完整的第一文件,進而通過播放部分數據片段可以讓用戶從希望觀看的位置開始觀看,例如可以從用戶拖動播放進度條之后的位置開始播放,這樣可以盡量滿足用戶的實際觀看需求,同時,由于無需再將完整的第一文件全部發送給客戶端,而只將第一文件中的部分數據片段發送給客戶端,進而可以減少數據量的傳輸,提高帶寬的利用率。
[0024]請參見圖2,本發明實施例提供一種文件傳輸方法,該方法可以適用于基于超文本傳輸協議(Hypertext transf er protocol,Http)下的內容分發過程,具體來說,該方法可以應用于如圖1中所示的緩存服務器,即該方法各步驟的執行主體可以是如圖1中所示的緩存服務器,例如高速緩沖存儲器(Cache)服務器,也稱作邊緣Cache服務器,等等。該方法的流程描述如下:
[0025]步驟201:緩存服務器接收客戶端發送的攜帶有第一參數的文件片段獲取請求;其中,文件片段獲取請求用于請求獲得第一文件中的部分數據片段,第一參數用于表征部分數據片段位于第一文件中的字節段的位置,文件獲取請求為與緩存服務器對應的源站服務器無法處理的請求。
[0026]其中,第一參數用于表征部分數據片段位于第一文件中的字節段的位置,第一參數例如為start參數,等等。例如,第一文件為包含1-10000字節的視頻文件,而第一參數用于表征第一文件中第500-10000字節的數據片段,即此處的部分數據片段為第一文件中的第500-10000字節的數據片段。
[0027]具體來說,第一參數可以為客戶端響應用戶拖動播放進度條的拖動操作而確定的參數,例如,一集電視劇的播放時長為40分鐘,而該集電視劇包括0-10000字節,如果用戶通過拖動播放進度條而希望從第10分鐘開始觀看,且假設與第10分鐘開始的部分數據片段為第2500字節,說明用戶希望觀看從2500字節開始的視頻內容。
[0028]或者,第一參數可以為客戶端基于客戶端存儲的預定播放策略而確定的參數,例如,對于電視劇來說,用戶設定的播放策略是直接跳過片頭,而假設片頭為2分鐘,那則表明用戶直接希望從3分鐘開始觀看視頻。
[0029]在本發明實施例中,與緩存服務器對應的源站服務器對攜帶有第一參數的文件片段獲取請求無法處理,也就是說,當源站服務器接收到攜帶有第一參數的文件片段獲取請求時無法從該請求中解析獲得第一參數,那么自然也就無法根據第一參數從第一文件中確定客戶端請求獲得的部分數據片段,同時為了對緩存服務器所發送的請求進行響應,則會將完整的第一文件發送給緩存服務器,但是這樣并無法滿足客戶端的請求需求。
[0030]步驟202:緩存服務器基于文件片段獲取請求,生成與文件片段獲取請求對應的range請求。
[0031]為了滿足客戶端的請求以滿足用戶的實際觀看需求,在本發明實施例中,當緩存服務器接收到攜帶有第一參數的文件片段獲取請求之后,則會基于該文件片段獲取請求而生成與該文件片段獲取請求對應的range請求。
[0032]其中,生成的range請求是源站服務器能夠處理的請求,并且由于該range請求是基于攜帶有第一參數的文件片段獲取請求而生成的,所以當源站服務器在對該range請求進行處理時,可以確定客戶端所請求的部分數據片段位于第一文件中的字節段的位置,繼續以第一文件為包含1-10000字節的視頻文件,而第一參數用于表征該視頻文件中第500-10000字節的數據片段為例,當源站服務器在對該range請求進行處理時,可以確定客戶端請求的部分數據片段是該視頻文件中第500-10000字節的數據片段,即客戶端請求的部分數據片段位于第一文件中的字節段的位置是第500-10000。
[0033]在具體實施過程中,緩存服務器可以先基于第一參數,確定range請求頭,繼續以上述例子為例,range請求頭的格式為range: bytes = 500-10000 ,其開始字節(rangeoffset)為500,存儲地址長度為9500,其中,存儲地址長度即為range區間的長度,也就是說,通過range請求頭,可以明確客戶端請求的部分數據片段位于第一文件中的開始字節和終止字節。
[0034]進一步地,可以基于第一參數確定的range請求頭添加到文件片段獲取請求中,具體來說,例如可以在文件片段獲取請求的消息頭部添加range請求頭,最后再將添加了range請求頭的文件片段獲取請求確定為作為range請求,也就是說,通過對文件片段獲取請求進行處理即可以生成range請求。
[0035]另外,本發明實施例中的range請求可以理解為是攜帶有range的請求,由于range請求具有既定的消息格式并且源站服務器能夠對range請求進行識別和處理,所以通過將源站服務器無法處理的文件片段獲取生成range請求的方式,可以讓源站服務器能夠對客戶端所發送的文件片段獲取請求進行正確識別,以提高請求響應的正確性,滿足客戶端用戶的實際觀看需求。
[0036]另外,在根據文件片段獲取請求生成range請求的過程中,當將基于第一參數所確定的range請求頭添加到文件片段獲取請求中之后,為了減少range請求的數據量和盡量降低信息重復,可以將其中與第一參數對應的信息刪除,因為這部分信息可以被range請求頭替代,并且其對于源站服務器來說也是無效的,通過將其進行刪除可以range請求的數據量以減少數據量的傳輸,提高從緩存服務器到源站服務器的傳輸效率。
[0037]步驟203:緩存服務器將range請求發送給源站服務器,以使源站服務器根據range請求從其存儲的第一文件中確定部分數據片段。
[0038]在生成了range請求之后,緩存服務器可以將其發送給源站服務器,由于源站服務器可以對range請求進行處理,進而可以根據range請求從源站服務器中存儲的第一文件中確定客戶端所請求的部分數據片段。
[0039]進一步地,源站服務器在從第一文件中確定客戶端所請求的部分數據片段之后,可以將所確定的部分數據片段發送給緩存服務器。
[0040]步驟204:緩存服務器接收源站服務器發送的部分數據片段。
[0041 ]步驟205:緩存服務器將部分數據片段發送給客戶端。
[0042]也就是說,緩存服務器在接收到源站服務器發送的部分數據片段之后,可以將其發送給客戶端,以使客戶端能夠獲得部分數據片段并將部分數據片段及時進行播放,那么播放的視頻內容就可以是從用戶拖動播放進度條之后的位置開始播放,這樣可以滿足用戶的實際觀看需求,提升用戶的觀看體驗。
[0043]本發明實施例提供的文件傳輸方法,在緩存服務器接收到客戶端發送的攜帶有第一參數的文件片段獲取請求時,為了避免與緩存服務器對應的源站服務器由于無法處理該文件片段獲取請求而將完整的第一文件發送給緩存服務器,緩存服務器可以基于文件片段獲取請求生成源站服務器能夠處理的range請求,通過將生成的range請求發送給源站服務器可以使得源站服務器根據range請求從第一文件中確定客戶端所需要的部分數據片段,并且在接收到源站服務器發送的部分數據片段之后可以將其轉發給客戶端,以使得客戶端可以獲得第一文件中的部分數據片段而并非是完整的第一文件,進而通過播放部分數據片段可以讓用戶從希望觀看的位置開始觀看,例如可以從用戶拖動播放進度條之后的位置開始播放,這樣可以盡量滿足用戶的實際觀看需求,同時,由于無需再將完整的第一文件全部發送給客戶端,而只將第一文件中的部分數據片段發送給客戶端,進而可以減少數據量的傳輸,提高帶寬的利用率。
[0044]基于上述技術方案,參閱圖3所示,本發明實施例提供一種電子設備,該電子設備可以為前述的緩存服務器,該電子設備包括:第一接收模塊301、生成模塊302、第一發送模塊303、第二接收模塊304和第二發送模塊305,而且本發明實施例中的第一接收模塊301、生成模塊302、第一發送模塊303、第二接收模塊304和第二發送模塊305可以通過硬件處理器(hardware processor)來實現相關功能單元。其中:
[0045]第一接收模塊301,用于接收客戶端發送的攜帶有第一參數的文件片段獲取請求;其中,文件片段獲取請求用于請求獲得第一文件中的部分數據片段,第一參數用于表征部分數據片段位于第一文件中的字節段的位置,文件片段獲取請求為與電子設備對應的源站服務器無法處理的請求;
[0046]生成模塊302,用于基于文件片段獲取請求,生成與文件片段獲取請求對應的range請求;
[0047]第一發送模塊303,用于將range請求發送給源站服務器,以使源站服務器根據range請求從存儲的第一文件中確定部分數據片段;
[0048]第二接收模塊304,用于接收源站服務器發送的部分數據片段;
[0049]第二發送模塊305,用于將部分數據片段發送給客戶端。
[0050]可選的,生成模塊302用于:
[0051]在文件片段獲取請求中添加range請求頭,以獲得與文件片段獲取請求對應的range請求。
[0052]可選的,生成模塊302用于:
[0053]基于第一參數,確定range請求頭;
[0054]將range請求頭添加到文件片段獲取請求中;
[0055]將添加了range請求頭的文件片段獲取請求確定為range請求。
[0056]可選的,生成模塊302用于:
[0057]將與第一參數對應的信息從添加了range請求頭的文件片段獲取請求中刪除;
[0058]將添加了range請求頭以及刪除了與第一參數對應的信息的文件片段獲取請求確定為range請求。
[0059]可選的,第一參數為客戶端響應用戶拖動播放進度條的拖動操作而確定的參數;或客戶端基于客戶端存儲的預定播放策略而確定的參數。
[0060]本發明實施例中的電子設備中的各個模塊可以配置用于執行圖2所示的文件傳輸方法,由于本發明實施例中的電子設備與圖2中的文件傳輸方法解決問題的原理相似,因此本發明實施例中電子設備的實施可以參見圖2中文件傳輸方法的實施,在此不再贅述。
[0061]本發明實施例提供的電子設備,在接收到客戶端發送的攜帶有第一參數的文件片段獲取請求時,為了避免與電子設備對應的源站服務器由于無法處理該文件片段獲取請求而將完整的第一文件發送給電子設備,電子設備可以基于文件片段獲取請求生成源站服務器能夠處理的range請求,通過將生成的range請求發送給源站服務器可以使得源站服務器根據range請求從第一文件中確定客戶端所需要的部分數據片段,并且在接收到源站服務器發送的部分數據片段之后可以將其轉發給客戶端,以使得客戶端可以獲得第一文件中的部分數據片段而并非是完整的第一文件,進而通過播放部分數據片段可以讓用戶從希望觀看的位置開始觀看,例如可以從用戶拖動播放進度條之后的位置開始播放,這樣可以盡量滿足用戶的實際觀看需求,同時,由于無需再將完整的第一文件全部發送給客戶端,而只將第一文件中的部分數據片段發送給客戶端,進而可以減少數據量的傳輸,提高帶寬的利用率。
[0062]以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性的勞動的情況下,即可以理解并實施。
[0063]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件。基于這樣的理解,上述技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在計算機可讀存儲介質中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行各個實施例或者實施例的某些部分所述的方法。
[0064]最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
【主權項】
1.一種文件傳輸方法,其特征在于,包括: 緩存服務器接收客戶端發送的攜帶有第一參數的文件片段獲取請求;其中,所述文件片段獲取請求用于請求獲得第一文件中的部分數據片段,所述第一參數用于表征所述部分數據片段位于所述第一文件中的字節段的位置,所述文件片段獲取請求為與所述緩存服務器對應的源站服務器無法處理的請求; 所述緩存服務器基于所述文件片段獲取請求,生成與所述文件片段獲取請求對應的range請求; 所述緩存服務器將所述range請求發送給所述源站服務器,以使所述源站服務器根據所述range請求從存儲的所述第一文件中確定所述部分數據片段; 所述緩存服務器接收所述源站服務器發送的所述部分數據片段; 所述緩存服務器將所述部分數據片段發送給所述客戶端。2.根據權利要求1所述的方法,其特征在于,所述緩存服務器基于所述文件片段獲取請求,生成與所述文件片段獲取請求對應的range請求,包括: 所述緩存服務器在所述文件片段獲取請求中添加range請求頭,以獲得與所述文件片段獲取請求對應的所述range請求。3.根據權利要求2所述的方法,其特征在于,所述緩存服務器在所述文件片段獲取請求中添加range請求頭,以獲得與所述文件片段獲取請求對應的所述range請求,包括: 所述緩存服務器基于所述第一參數,確定所述range請求頭; 所述緩存服務器將所述range請求頭添加到所述文件片段獲取請求中; 所述緩存服務器將添加了所述range請求頭的文件片段獲取請求確定為所述range請求。4.根據權利要求3所述的方法,其特征在于,所述緩存服務器將添加了所述range請求頭的文件片段獲取請求確定為所述range請求,包括: 所述緩存服務器將與所述第一參數對應的信息從添加了所述range請求頭的文件片段獲取請求中刪除; 所述緩存服務器將添加了所述range請求頭以及刪除了與所述第一參數對應的信息的文件片段獲取請求確定為所述range請求。5.根據權利要求1-4中任一項權利要求所述的方法,其特征在于,所述第一參數為: 所述客戶端響應用戶拖動播放進度條的拖動操作而確定的參數;或 所述客戶端基于所述客戶端存儲的預定播放策略而確定的參數。6.一種電子設備,其特征在于,包括: 第一接收模塊,用于接收客戶端發送的攜帶有第一參數的文件片段獲取請求;其中,所述文件片段獲取請求用于請求獲得第一文件中的部分數據片段,所述第一參數用于表征所述部分數據片段位于所述第一文件中的字節段的位置,所述文件片段獲取請求為與所述緩存服務器對應的源站服務器無法處理的請求; 生成模塊,用于基于所述文件片段獲取請求,生成與所述文件片段獲取請求對應的range請求; 第一發送模塊,用于將所述range請求發送給源站服務器,以使所述源站服務器根據所述range請求從存儲的所述第一文件中確定所述部分數據片段; 第二接收模塊,用于接收所述源站服務器發送的所述部分數據片段; 第二發送模塊,用于將所述部分數據片段發送給所述客戶端。7.根據權利要求6所述的電子設備,其特征在于,所述生成模塊用于: 在所述文件片段獲取請求中添加range請求頭,以獲得與所述文件片段獲取請求對應的所述range請求。8.根據權利要求7所述的電子設備,其特征在于,所述生成模塊用于: 基于所述第一參數,確定所述range請求頭; 將所述range請求頭添加到所述文件片段獲取請求中; 將添加了所述range請求頭的文件片段獲取請求確定為所述range請求。9.根據權利要求8所述的電子設備,其特征在于,所述生成模塊用于:將與所述第一參數對應的信息從添加了所述range請求頭的文件片段獲取請求中刪除; 將添加了所述range請求頭以及刪除了與所述第一參數對應的信息的文件片段獲取請求確定為所述range請求。10.根據權利要求6-9中任一項權利要求所述的電子設備,其特征在于,所述第一參數為: 所述客戶端響應用戶拖動播放進度條的拖動操作而確定的參數;或 所述客戶端基于所述客戶端存儲的預定播放策略而確定的參數。
【文檔編號】H04N21/472GK105979277SQ201610264266
【公開日】2016年9月28日
【申請日】2016年4月25日
【發明人】劉斌
【申請人】樂視控股(北京)有限公司, 樂視云計算有限公司