一種向用戶提供文件的方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種向用戶提供文件的方法及裝置,其中向用戶提供文件的方法包括:根據(jù)文件的存儲序列號確定所述文件的存儲路徑,并將所述文件以所述存儲序列號為名保存到所述文件的存儲路徑下;根據(jù)所述文件的存儲路徑確定所述文件在頁面上的鏈接地址;當獲取到用戶對所述文件在頁面上的鏈接地址發(fā)送的請求時,根據(jù)所述請求對應(yīng)的鏈接地址確定所述文件的存儲序列號;利用所述文件的存儲序列號確定所述文件,并將所述文件返回給用戶。通過上述方式,本發(fā)明可以實現(xiàn),無論以何種方式在文件的鏈接地址中展示文件名,均能在接收到用戶請求后向用戶返回正確的文件。
【專利說明】一種向用戶提供文件的方法及裝置
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及文件下載技術(shù),特別涉及一種向用戶提供文件的方法及裝置。
【【背景技術(shù)】】
[0002]隨著互聯(lián)網(wǎng)的廣泛使用,人們現(xiàn)在只需點擊鼠標,就能夠從網(wǎng)絡(luò)上獲取大量自己感興趣的資源,如音樂文件、視頻文件等等。
[0003]網(wǎng)絡(luò)上的文件通常存放在網(wǎng)站的服務(wù)器上,網(wǎng)站的服務(wù)器可以理解為一臺大型的計算機,文件在服務(wù)器上的保存方式與文件在個人電腦上的保存方式并無不同,均是保存在主機的層級目錄下。例如一個命名為“ 123.mp3”的音樂文件,其存放在域名為“mp3,baidu.com”的服務(wù)器上一個名為“music”的目錄下,則在網(wǎng)頁上,供用戶下載該文件的鏈接地址可以表示為“http://mp3.baidu.com/music/123, mp3”。當用戶使用“迅雷”之類的專門下載工具對該鏈接地址對應(yīng)的文件進行下載時,默認的文件保存名稱就是“123”,默認的文件保存類型就是“mp3”。可見,在下載時,鏈接地址中顯示的文件名會影響保存時的默認行為,如果鏈接地址中顯示的文件名是真實的文件名,如鏈接地址中顯示的文件名為“冰雨.mp3”,用戶直接點擊保存就可以對該文件進行下載了,如果鏈接地址中文件名像前面所述的為“ 123.mp3”,用戶通常還需要對下載文件改名,這無疑增加了用戶的操作負擔。
[0004]在現(xiàn)有技術(shù)中 ,之所以將文件以序列號命名并保存在服務(wù)器上,并且將鏈接地址中的文件名展示為序列號的形式,使得用戶在下載文件時不得不進行人工改名,主要是因為如果文件名中包含漢字、特殊符號或者小語種文字時,點擊該鏈接地址時發(fā)送的請求中,文件名有可能成為亂碼,這樣請求到達服務(wù)器后將不能正確進行解析,會導(dǎo)致無法找到該鏈接地址對應(yīng)的文件的問題。下面以鏈接地址“http://mp3.baidu.com/music/冰雨.mp3”為例說明上述過程,當用戶點擊該鏈接地址時,會向名為“mp3, baidu.com”的服務(wù)器發(fā)送請求,請求數(shù)據(jù)中包含上述鏈接地址,但是其中的“冰雨”會形成亂碼,假設(shè)該亂碼為“% Y#'服務(wù)器在接收到請求后,只能從請求中解析出文件的保存路徑“mp3, baidu.com/music”和文件名“% ¥#.mp3”,于是就會到“music”目錄下去尋找“% ¥#.mp3”文件,顯然,由于在“music”目錄下無法找到對應(yīng)的文件,也就無法向用戶返回對應(yīng)的文件,從而導(dǎo)致用戶下載文件失敗。
【
【發(fā)明內(nèi)容】
】
[0005]本發(fā)明所要解決的技術(shù)問題是提供一種向用戶提供文件的方法及裝置,以實現(xiàn)無論以何種方式在文件的鏈接地址中展示文件名,均能在接收到用戶請求后向用戶返回正確文件的目的。
[0006]本發(fā)明為解決技術(shù)問題而采用的技術(shù)方案是提供一種向用戶提供文件的方法,包括:根據(jù)文件的存儲序列號確定所述文件的存儲路徑,并將所述文件以所述存儲序列號為名稱保存到所述文件的存儲路徑下;根據(jù)所述文件的存儲路徑確定所述文件在頁面上的鏈接地址;當獲取到用戶對所述文件在頁面上的鏈接地址發(fā)送的請求時,根據(jù)所述請求對應(yīng)的鏈接地址確定所述文件的存儲序列號;利用所述文件的存儲序列號確定所述文件,并將所述文件返回給用戶。
[0007]根據(jù)本發(fā)明之一優(yōu)選實施例,所述文件的存儲序列號包括數(shù)字、字母、或者,數(shù)字與字母的組合。
[0008]根據(jù)本發(fā)明之一優(yōu)選實施例,根據(jù)文件的存儲序列號確定所述文件的存儲路徑的步驟具體包括:根據(jù)預(yù)設(shè)策略確定文件的存儲序列號;在到達所述文件的尋址路徑中設(shè)定與所述文件的存儲序列號同名的目錄,得到所述文件的存儲路徑。
[0009]根據(jù)本發(fā)明之一優(yōu)選實施例,根據(jù)所述文件的存儲路徑確定所述文件在頁面上的鏈接地址的步驟具體包括:利用所述文件的存儲路徑和所述文件的主題名生成所述文件在頁面上的鏈接地址;或者,生成隨機數(shù),并利用所述文件的存儲路徑和所述隨機數(shù)生成所述文件在頁面上的鏈接地址。
[0010]根據(jù)本發(fā)明之一優(yōu)選實施例,根據(jù)所述請求對應(yīng)的鏈接地址確定所述文件的存儲序列號的步驟具體包括:從所述請求對應(yīng)的鏈接地址包含的目錄中提取目錄名作為所述文件的存儲序列號。
[0011]根據(jù)本發(fā)明之一優(yōu)選實施例,利用所述文件的存儲序列號確定所述文件的步驟具體包括:使用所述文件的存儲序列號替換所述請求對應(yīng)的鏈接地址中的文件名,并對替換后的所述請求對應(yīng)的鏈接地址進行解析,以得到所述文件。
[0012]根據(jù)本發(fā)明之一優(yōu)選實施例,利用所述文件的存儲序列號確定所述文件的步驟具體包括:從所述請求對應(yīng)的鏈接地址中提取所述文件的存儲路徑,并以所述文件的存儲序列號為名稱在所述文件的存儲路徑下進行查找,以得到所述文件。
[0013]本發(fā)明還提供了一種向用戶提供文件的裝置,包括:路徑確定單元,用于根據(jù)文件的存儲序列號確定所述文件的存儲路徑;存儲單元,用于將所述文件以所述存儲序列號為名稱保存到所述文件的存儲路徑下;地址生成單元,用于根據(jù)所述文件的存儲路徑確定所述文件在頁面上的鏈接地址;存儲號確定單元,用于當獲取到用戶對所述文件在頁面上的鏈接地址發(fā)送的請求時,根據(jù)所述請求對應(yīng)的鏈接地址確定所述文件的存儲序列號;文件返回單元,用于利用所述文件的存儲序列號確定所述文件,并將所述文件返回給用戶。
[0014]根據(jù)本發(fā)明之一優(yōu)選實施例,所述文件的存儲序列號包括數(shù)字、字母、或者,數(shù)字與字母的組合。
[0015]根據(jù)本發(fā)明之一優(yōu)選實施例,所述路徑確定單元具體包括:序列號確定單元,用于根據(jù)預(yù)設(shè)策略確定文件的存儲序列號;目錄確定單元,用于在到達所述文件的尋址路徑中設(shè)定與所述文件的存儲序列號同名的目錄,得到所述文件的存儲路徑。
[0016]根據(jù)本發(fā)明之一優(yōu)選實施例,所述地址生成單元具體包括:第一鏈接單元,用于利用所述文件的存儲路徑和所述文件的主題名生成所述文件在頁面上的鏈接地址。
[0017]根據(jù)本發(fā)明之一優(yōu)選實施例,所述地址生成單元具體包括:數(shù)字產(chǎn)生單元,用于生成隨機數(shù);第二鏈接單元,用于利用所述文件的存儲路徑和所述隨機數(shù)生成所述文件在頁面上的鏈接地址。
[0018]根據(jù)本發(fā)明之一優(yōu)選實施例,所述存儲號確定單元根據(jù)所述請求對應(yīng)的鏈接地址確定所述文件的存儲序列號的方式具體包括:從所述請求對應(yīng)的鏈接地址包含的目錄中提取目錄名作為所述文件的存儲序列號。[0019]根據(jù)本發(fā)明之一優(yōu)選實施例,所述文件返回單元利用所述文件的存儲序列號確定所述文件的方式具體包括:使用所述文件的存儲序列號替換所述請求對應(yīng)的鏈接地址中的文件名,并對替換后的所述請求對應(yīng)的鏈接地址進行解析,以得到所述文件。
[0020]根據(jù)本發(fā)明之一優(yōu)選實施例,所述文件返回單元利用所述文件的存儲序列號確定所述文件的方式具體包括:從所述請求對應(yīng)的鏈接地址中提取所述文件的存儲路徑,并以所述文件的存儲序列號為名稱在所述文件的存儲路徑下進行查找,以得到所述文件。
[0021]由以上技術(shù)方案可以看出,通過文件的存儲序列號確定文件的存儲路徑,并依據(jù)文件的存儲路徑生成文件在頁面上的鏈接地址,可以保證根據(jù)請求對應(yīng)的鏈接地址一定能夠得到文件的存儲序列號,從而能正確定位到需要返回給用戶的文件。本發(fā)明中,在定位返回文件時,不依賴請求對應(yīng)的鏈接地址中的文件名,因此無論以何種方式在頁面的鏈接地址中展示文件名,對最終返回的文件均無影響,也就是說,利用本發(fā)明的方案,無論以何種方式在頁面的鏈接地址中展示文件名,均能在接收到用戶請求后向用戶返回正確的文件。此外,與現(xiàn)有技術(shù)相比,利用本發(fā)明的技術(shù)方案,文件在頁面上的鏈接地址中可以以任意方式展示文件名,增強了頁面上的鏈接地址中文件名展示的靈活性。
【【專利附圖】
【附圖說明】】
[0022]圖1為本發(fā)明中向用戶提供文件的方法的流程示意圖;
[0023]圖2為本發(fā)明中向用戶提供文件的裝置的結(jié)構(gòu)示意框圖;
[0024]圖3為本發(fā)明中路徑確定單元的實施例的結(jié)構(gòu)示意框圖;
[0025]圖4a為本發(fā)明中地址生成單元的實施例一的結(jié)構(gòu)示意框圖;
[0026]圖4b為本發(fā)明中地址生成單元的實施例二的結(jié)構(gòu)示意框圖。
【【具體實施方式】】
[0027]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述。
[0028]請參考圖1,圖1為本發(fā)明中向用戶提供文件的方法的流程示意圖。如圖1所示,該方法包括:
[0029]步驟SlOl:根據(jù)文件的存儲序列號確定文件的存儲路徑,并將文件以存儲序列號為名保存到文件的存儲路徑下。
[0030]步驟S102:根據(jù)文件的存儲路徑確定文件在頁面上的鏈接地址。
[0031]步驟S103:當獲取到用戶對文件在頁面上的鏈接地址發(fā)送的請求時,根據(jù)該請求對應(yīng)的鏈接地址 確定文件的存儲序列號。
[0032]步驟S104:利用文件的存儲序列號確定對應(yīng)的文件,并將確定的文件返回給用戶。
[0033]下面對上述步驟進行具體說明。
[0034]步驟SlOl中,根據(jù)文件的存儲序列號確定文件的存儲路徑,具體包括:根據(jù)預(yù)設(shè)策略確定文件的存儲序列號,以及,在到達文件的尋址路徑中設(shè)定與文件的存儲序列號同名的目錄,得到文件的存儲路徑。
[0035]本發(fā)明中,存儲序列號包括數(shù)字、字母、或者,數(shù)字與字母的組合。例如“123”、“abc”、“abc213”等。預(yù)設(shè)策略包括:以遞增的方式確定文件的存儲序列號,或者以遞減的方式確定文件的存儲序列號,或者以隨機數(shù)的方式確定文件的存儲序列號等等,本發(fā)明對此不做限制。例如,有若干個文件需要存儲,則每個文件依存儲時的順序,從序列號“ I ”開始,分別以遞增的方式得到一個存儲序列號。
[0036]尋址路徑為從服務(wù)器域名開始,到到達文件所經(jīng)過的路徑,在尋址路徑中設(shè)立與文件的存儲序列號同名的目錄,具體地,可參考下面的例子。
[0037]假設(shè)待保存的文件的存儲序列號為“123”,服務(wù)器域名為“mp3, baidu.com”,則該文件的存儲路徑可以表示為“mp3, baidu.com/123/”。應(yīng)該理解,上述所舉例子僅為一種優(yōu)選實施方式,實際上,該文件的存儲路徑還可以是“mp3, baidu.com/123/123/”,只要在尋址路徑中設(shè)立與文件的存儲序列號同名的目錄,均在本發(fā)明的范圍之內(nèi)。
[0038]此外,步驟SlOl中根據(jù)文件的存儲序列號確定文件的存儲路徑,除了上述在尋址路徑中設(shè)立與存儲序列號同名的目錄以外,還可以在尋址路徑中設(shè)定名稱中包含存儲序列號的目錄,例如上述例子中存儲序列號為“123”的文件,存儲路徑也可以是“mp3, baidu.com/musicl23/”,本領(lǐng)域技術(shù)人員應(yīng)該理解,根據(jù)文件的存儲序列號確定文件的存儲路徑可以有多種方式,本說明書不再一一列舉。
[0039]步驟SlOl中,在得到文件的存儲路徑后,就會將該文件以存儲序列號為名稱保存到對應(yīng)的存儲路徑下。例如上面例子中存儲序列號為“123”的文件,就會以“123”為文件名保存到名為“mp3, baidu.com”的服務(wù)器上名為“123”的目錄下。本領(lǐng)域技術(shù)人員應(yīng)該理解,以存儲序列號為名,指的是以存儲序列號為文件基本名,文件在保存時,文件名還包括擴展名部分,由于文件擴展名在保存時可由服務(wù)器根據(jù)文件類型自動確定,本說明書對此不再對此贅述。
[0040]步驟S102中,根據(jù)文件的存儲路徑確定文件在頁面上的鏈接地址,本說明書給出了兩種實施方式。下面將對這兩種實施方式進行詳細介紹。
[0041]步驟S102的實施方式一:
[0042]利用文件的存儲路徑和文件的主題名生成文件在頁面上的鏈接地址。文件的主題名指的是含有語義特征的名稱,例如一首歌的主題名就是這首歌的歌名,或者一篇文章的主題名就是這篇文章的標題等等。主題名通常與文件的內(nèi)容相關(guān),用戶通過主題名,可以明確該文件的內(nèi)容屬性。文件的主題名可在預(yù)先取得文件時從保存文件的數(shù)據(jù)庫中獲取到,或者是預(yù)先取得文件時從文件內(nèi)部的信息中獲取到,由于這可以通過多種現(xiàn)有技術(shù)實現(xiàn),本發(fā)明對此不再贅述。
[0043]例如一首mp3音樂的主題名為“冰雨”,其對應(yīng)的存儲路徑為“mp3, baidu.com/123/”,則該音樂在頁面上的鏈接地址可以確定為“http://mp3.baidu.com/123/冰雨.mp3”。此外,文件的主題名還可以是帶有附屬信息的名稱,如“冰雨”這首歌的主題名,還可以表示為“冰雨劉德華”、“冰雨一經(jīng)典重現(xiàn)”等等。通過本實施方式,用戶在下載文件時,默認保存的文件名,就是鏈接地址中的主題名,用戶在下載文件時不需要修改文件名,給用戶帶來了極大的便利,此外,由于本發(fā)明中對主題名沒有任何限制,因此主題名能夠包含很豐富的信息,可以給用戶帶來很好的用戶體驗。
[0044]步驟S102的實施方式二:
[0045]生成隨機數(shù),并利用文件的存儲路徑和該隨機數(shù)生成文件在頁面上的鏈接地址。[0046]通過隨機算法可以取得隨機數(shù),此外,還可以獲取當前時刻并將當前時刻作為隨機數(shù)。當前時刻是指從某個時刻以來的秒數(shù),通常是指1970年I月I日以來的秒數(shù),可通過專門的接口函數(shù)得到。可以看出,如果通過獲取當前時刻得到隨機數(shù),則在任意不相同時刻獲取的隨機數(shù)都是不一樣的。如果隨機數(shù)為“8903834”,主題名為“冰雨”的mp3文件的存儲路徑為“mp3, baidu.com/123/",則該文件在頁面上的鏈接地址可以確定為“http://mp3, baidu.com/123/8903834, mp3”。如果與實施方式一中的主題名結(jié)合,該鏈接地址還可以確定為 “http://mp3.baidu.com/123/ 冰雨 _8903834.mp3”。
[0047]有些網(wǎng)絡(luò)運營商,會對一些媒體文件進行緩存,以提高在本域內(nèi)用戶下載文件時的速度。當用戶向某個音樂服務(wù)器請求文件下載時,網(wǎng)絡(luò)運營商的服務(wù)器發(fā)現(xiàn)該文件名對應(yīng)的文件在本服務(wù)器中已經(jīng)存在,就會把這個文件直接返回給用戶,而不是把該請求發(fā)送到真正請求的音樂服務(wù)器處。但是用戶針對不同的鏈接地址請求的同名歌曲,很可能不是真正相同的歌曲,例如歌手侃侃和歌手南風都有一首名為“滴答”的歌曲,當網(wǎng)絡(luò)運營商服務(wù)器上已經(jīng)緩存了南風版本的“滴答”時,后續(xù)有該網(wǎng)絡(luò)運營商所屬域的用戶請求某個音樂服務(wù)器上屬于侃侃版本的“滴答”時,該請求并沒有到達最終的音樂服務(wù)器,而是被網(wǎng)絡(luò)運營商攔截,用戶得到的返回文件是南風版本的“滴答”。
[0048]上述由于網(wǎng)絡(luò)運營商對媒體文件進行緩存而造成的無法向用戶返回正確文件的問題,通過實施方式二能夠得到很好的解決。因為文件的鏈接地址中的文件名如果以普通隨機數(shù)的方式展示,當產(chǎn)生該隨機數(shù)的范圍足夠大時同名的概率非常小,如果以當前時刻的隨機數(shù)的方式展示,則不存在同名的可能。通過當前時刻形成的隨機數(shù),每個不同時刻生成的網(wǎng)頁中,文件的鏈接地址中顯示的文件名都是不同的,這樣用戶對文件鏈接地址發(fā)送的請求就能夠到達真正的服務(wù)器處并從真正的服務(wù)器處獲取正確的文件返回。
[0049]步驟S103中,當獲取到用戶對文件在頁面上的鏈接地址發(fā)送的請求時,根據(jù)該請求對應(yīng)的鏈接地址確定文件的存儲序列號的方式具體包括:
[0050]從該請求對應(yīng)的鏈接地址包含的目錄中提取目錄名作為文件的存儲序列號。
[0051]用戶點擊文件在頁面上的鏈接地址時,與該鏈接地址相關(guān)的請求就會發(fā)送到該鏈接地址指定的服務(wù)器,例如鏈接地址為“http://mp3.baidu.com/123/冰雨.mp3”,當用戶點擊該鏈接地址后,請求就被發(fā)送到域名為“mp3, baidu.com”的服務(wù)器。請求對應(yīng)的鏈接地址,指的是請求數(shù)據(jù)中包含的鏈接地址,該鏈接地址是基于文件在頁面上的鏈接地址生成的,但是請求對應(yīng)的鏈接地址有可能不完全與文件在頁面上的鏈接地址相同。例如域名為“mp3, baidu.com”的服務(wù)器接收到的請求對應(yīng)的鏈接地址為“http://mp3.baidu.com/123/*#.mp3”,其中部分有可能是亂碼而不是文件在頁面上的鏈接地址中指定的“冰雨”。從前文的說明可以看出,由于請求對應(yīng)的鏈接地址是基于文件在頁面上的鏈接地址得到的,而文件在頁面上的鏈接地址包含的文件存儲路徑中的目錄里有與文件的存儲序列號同名的目錄,因此,在步驟S103中,只需要將對應(yīng)的目錄名提取出來即可得到文件的存儲序列號。
[0052]在得到文件的存儲序列號后,步驟S104中,利用文件的存儲序列號確定對應(yīng)的文件的方式可以有以下兩種實施方式,下面對這兩種方式分別進行介紹。
[0053]步驟S104的實施方式一:
[0054]使用文件的存儲序列號替換請求對應(yīng)的鏈接地址中的文件名,并對替換后的請求對應(yīng)的鏈接地址進行解析,以得到與存儲序列號對應(yīng)的文件。
[0055]例如:請求對應(yīng)的鏈接地址為“http://mp3.baidu.com/123/%$#.mp3”,根據(jù)步驟S103知道文件的存儲序列號為“ 123”,于是用“ 123”替換“% Y#,,,得到替換后的請求對應(yīng)的鏈接地址為“http://mp3.baidu.com/123/123.mp3”,再調(diào)用服務(wù)器現(xiàn)有的解析鏈接地址的接口,即可得到存儲序列號“ 123”對應(yīng)的文件。
[0056]在這種方式下,對鏈接地址的解析仍由現(xiàn)有技術(shù)實現(xiàn),本發(fā)明只需要根據(jù)文件的存儲序列號修改待解析的鏈接地址即可。
[0057]步驟S104的實施方式二:
[0058]從請求對應(yīng)的鏈接地址中提取文件的存儲路徑,并以文件的存儲序列號為名稱在文件的存儲路徑下進行查找,以得到與存儲序列號對應(yīng)的文件。
[0059]例如:請求對應(yīng)的鏈接地址為“http://mp3.baidu.com/123/%$#.mp3”,,則根據(jù)其中的分隔符“/”可以提取出文件的存儲路徑為“mp3, baidu.com/123/”,在該路徑下查找名為“123”的文件,即可得到與存儲序列號“123”對應(yīng)的文件。
[0060]在這種方式下,不需要調(diào)用服務(wù)器現(xiàn)有的解析鏈接地址的接口,而是提供了一種利用存儲序列號定位最終返回文件的方法。
[0061]將本發(fā)明與現(xiàn)有技術(shù)進行比較可以看出:
[0062]在現(xiàn)有技術(shù)中,服務(wù)器獲得請求后,直接對請求對應(yīng)的鏈接地址進行解析,一旦該鏈接地址中的文件名成了亂碼,就會導(dǎo)致解析錯誤,使得正確的文件無法返回。在本發(fā)明中,并不依賴請求對應(yīng)的鏈接地址中的文件名定位返回文件,而是通過請求對應(yīng)的鏈接地址中包含的文件存儲序列號來定位返回文件,因此本發(fā)明可以有效地解決由于文件名亂碼而導(dǎo)致正確文件無法返回的技術(shù)問題。此外,作為本領(lǐng)域技術(shù)人員可以看出,利用本發(fā)明的方案,實際上可以使得文件在服務(wù)器上的存儲名(也就是最終在服務(wù)器上定位返回文件時使用的名稱)與文件在頁面上的鏈接地址中的顯示名相脫離,從而使得文件的顯示名可以有很大的靈活性。在本發(fā)明的方案中,由于顯示名的改變,不會影響最終文件的返回,因此任何可通過更改顯示名解決的技術(shù)問題,都可以參考本發(fā)明方案進行實施,而現(xiàn)有技術(shù)中單純更改顯示名則會導(dǎo)致無法在服務(wù)器上找到正確的文件進行返回。
[0063]請參考圖2,圖2為本發(fā)明中向用戶提供文件的裝置的結(jié)構(gòu)示意框圖。如圖2所示,該裝置包括:路徑確定單元201、存儲單元202、地址生成單元203、存儲號確定單元204以及文件返回單元205。
[0064]其中,路徑確定單元201,用于根據(jù)文件的存儲序列號確定文件的存儲路徑。存儲單元202,用于將文件以存儲序列號為名稱保存到文件的存儲路徑下。地址生成單元203,用于根據(jù)文件的存儲路徑確定文件在頁面上的鏈接地址。存儲號確定單元204,用于當獲取到用戶對文件在頁面上的鏈接地址發(fā)送的請求時,根據(jù)該請求對應(yīng)的鏈接地址確定文件的存儲序列號。文件返回單元205,用于利用文件的存儲序列號確定相應(yīng)的文件,并將確定的文件返回給用戶。
[0065]請參考圖3,圖3為本發(fā)明中路徑確定單元的實施例的結(jié)構(gòu)示意框圖。如圖3所示,路徑確定單元201包括:序列號確定單元2011和目錄確定單元2012。
[0066]其中序列號確定單元2011,用于根據(jù)預(yù)設(shè)策略確定文件的存儲序列號。目錄確定單元2012,用于在到達文件的尋址路徑中設(shè)定與文件的存儲序列號同名的目錄,得到文件的存儲路徑。
[0067]本發(fā)明中的存儲序列號包括:數(shù)字、字母、或者數(shù)字與字母的組合。例如“123”、“abc”、“abc213”等。預(yù)設(shè)策略具體地包括:以遞增的方式確定文件的存儲序列號,或者以遞減的方式確定文件的存儲序列號,或者以隨機數(shù)的方式確定文件的存儲序列號等等。例如,有若干個文件需要存儲,則每個文件依存儲時的順序,從序列號“ I ”開始,分別以遞增的方式得到序列號確定單元2011分配的一個存儲序列號。
[0068]尋址路徑為從服務(wù)器域名開始,到到達文件所經(jīng)過的路徑,目錄確定單元2012在尋址路徑中設(shè)立與文件的存儲序列號同名的目錄,具體地,可參考下面的例子。
[0069]假設(shè)待保存的文件的存儲序列號為“123”,服務(wù)器域名為“mp3, baidu.com”,則目錄確定單元2012可將該文件的存儲路徑確定為“mp3, baidu.com/123/”。應(yīng)該理解,上述所舉例子僅為一種優(yōu)選實施方式,實際上,該文件的存儲路徑還可以是“mp3, baidu.com/123/123/”,只要目錄確定單元2012在尋址路徑中設(shè)立與文件的存儲序列號同名的目錄,均在本發(fā)明的范圍之內(nèi)。
[0070]在得到文件的存儲路徑后,存儲單元202就會將該文件以存儲序列號為名保存到對應(yīng)的存儲路徑下。例如上面例子中存儲序列號為“123”的文件,就會被存儲單元202以文件名“123”保存到名為“mp3, baidu.com”的服務(wù)器的名為“123”的目錄下。
[0071]請參考圖4a和圖4b,圖4a和圖4b分別為本發(fā)明中地址生成單元的兩個實施例的結(jié)構(gòu)示意框圖。
[0072]在圖4a所示的實施例中,地址生成單元203包括第一鏈接單元2031。其中第一鏈接單元2031用于利用文件的存儲路徑和文件的主題名生成文件在頁面上的鏈接地址。文件的主題名指的是含有語義特征的名稱,例如一首歌的主題名就是這首歌的歌名,或者一篇文章的主題名就是這篇文章的標題等等。主題名通常與文件的內(nèi)容相關(guān),用戶通過這個主題名,可以明確該文件的內(nèi)容屬性。
[0073]例如一首mp3音樂的主題名為“冰雨”,其對應(yīng)的存儲路徑為“mp3, baidu.com/123/",則第一鏈接單元2031可將該音樂在頁面上的鏈接地址確定為“http://mp3.baidu.com/123/冰雨.mp3”。此外,文件的主題名還可以是帶有附屬信息的名稱,如“冰雨”這首歌的主題名,還可以表示為“冰雨劉德華”、“冰雨一經(jīng)典重現(xiàn)”等等。通過本實施例,用戶在下載文件時,默認保存的文件名,就是鏈接地址中的主題名,用戶在下載文件時不需要修改文件名,給用戶帶來了極大的便利,此外,由于本發(fā)明中對主題名沒有任何限制,因此主題名可以包含很豐富的信息,可以給用戶帶來很好的用戶體驗。
[0074]在圖4b所示的實施例中,地址生成單元203包括數(shù)字產(chǎn)生單元203a和第二鏈接單元203b。其中數(shù)字產(chǎn)生單元203a用于生成隨機數(shù)。第二鏈接單元203b用于利用文件的存儲路徑和數(shù)字產(chǎn)生單元203a得到的隨機數(shù)生成文件在頁面上的鏈接地址。
[0075]數(shù)字產(chǎn)生單元203a通過隨機算法可以取得隨機數(shù),此外,數(shù)字產(chǎn)生單元203a還可以獲取當前時刻并將當前時刻作為隨機數(shù)。當前時刻是指從某個時刻以來的秒數(shù),通常是指1970年I月I日以來的秒數(shù),數(shù)字產(chǎn)生單元203a通過調(diào)用專門的接口函數(shù)就可得到當前時刻。
[0076]可以看出,如果數(shù)字產(chǎn)生單元203a通過獲取當前時刻得到隨機數(shù),則在任意不相同時刻獲取的隨機數(shù)都是不一樣的。如果隨機數(shù)為“8903834”,主題名為“冰雨”的mp3文件的存儲路徑為“mp3, baidu.com/123/",則第二鏈接單元203b可將該文件在頁面上的鏈接地址確定為“http://mp3.baidu.com/123/8903834, mp3”。如果與前面所說的主題名結(jié)合,第二鏈接單元203b還可將該文件在頁面上的鏈接地址確定為“http://mp3.baidu.com/123/ 冰雨 _8903834.mp3”。
[0077]有些網(wǎng)絡(luò)運營商,會對一些媒體文件進行緩存,以提高在本域內(nèi)用戶下載文件時的速度。當用戶向某個音樂服務(wù)器請求文件下載時,網(wǎng)絡(luò)運營商的服務(wù)器發(fā)現(xiàn)該文件名對應(yīng)的文件在本服務(wù)器中已經(jīng)存在,就會把這個文件直接返回給用戶,而不是把該請求發(fā)送到真正請求的音樂服務(wù)器處。但是用戶針對不同的鏈接地址請求的同名歌曲,很可能不是真正相同的歌曲,例如歌手侃侃和歌手南風都有一首名為“滴答”的歌曲,當網(wǎng)絡(luò)運營商服務(wù)器上已經(jīng)緩存了南風版本的“滴答”時,后續(xù)有該網(wǎng)絡(luò)運營商所屬域的用戶請求某個音樂服務(wù)器上屬于侃侃版本的“滴答”時,該請求并沒有到達最終的音樂服務(wù)器,而是被網(wǎng)絡(luò)運營商攔截,用戶得到的返回文件是南風版本的“滴答”。
[0078]上述由于網(wǎng)絡(luò)運營商對媒體文件進行緩存而造成的無法向用戶返回正確文件的問題,通過圖4b所示的實施例,能夠得到很好的解決。因為文件的鏈接地址中的文件名如果以普通隨機數(shù)的方式展示,當產(chǎn)生該隨機數(shù)的范圍足夠大時同名的概率非常小,如果以當前時刻的隨機數(shù)的方式展示,則不存在同名的可能。通過當前時刻形成的隨機數(shù),地址生成單元203在每個不同時刻生成的網(wǎng)頁中,文件的鏈接地址中顯示的文件名都是不同的,這樣用戶對文件鏈接地址發(fā)送的請求就能夠到達真正的服務(wù)器處并從該服務(wù)器處獲取正確的文件返回。
[0079]請繼續(xù)參考圖2。存儲號確定單元204當獲取到用戶對文件在頁面上的鏈接地址發(fā)送的請求時,根據(jù)該請求對應(yīng)的鏈接地址確定文件的存儲序列號的方式具體包括:從該請求對應(yīng)的鏈接地址包含的目錄中提取目錄名作為文件的存儲序列號。
[0080]用戶點擊文件在頁面上的鏈接地址時,與該鏈接地址相關(guān)的請求就會發(fā)送到該鏈接地址指定的服務(wù)器,例如鏈接地址為“http://mp3.baidu.com/123/冰雨mp3”,當用戶點擊該鏈接地址后,請求就被發(fā)送到域名為“mp3, baidu.com”的服務(wù)器。請求對應(yīng)的鏈接地址,指的是請求數(shù)據(jù)中包含的鏈接地址,該鏈接地址是基于文件在頁面上的鏈接地址生成的,但是請求對應(yīng)的鏈接地址有可能不完全與文件在頁面上的鏈接地址相同。例如域名為“mp3, baidu.com”的服務(wù)器接收到的請求對應(yīng)的鏈接地址為“http://mp3.baidu.com/123/*#.mp3”,其中部分有可能是亂碼而不是文件在頁面上的鏈接地址中指定的“冰雨”。從前文的說明可以看出,由于請求對應(yīng)的鏈接地址是基于文件在頁面上的鏈接地址得到的,而文件在頁面上的鏈接地址包含的文件存儲路徑中的目錄里有與文件的存儲序列號同名的目錄,因此,存儲號確定單元204只需要將對應(yīng)的目錄名提取出來即可得到文件的存儲序列號。
[0081]得到文件的存儲序列號后,文件返回單元205就可以利用該存儲序列號確定向用戶返回的文件。在一個實施例中,文件返回單元205利用文件的存儲序列號確定返回文件的方式具體包括:使用文件的存儲序列號替換請求對應(yīng)的鏈接地址中的文件名,并對替換后的請求對應(yīng)的鏈接地址進行解析,以得到與存儲序列號對應(yīng)的文件作為返回文件。
[0082]在另一個實施例中,文件返回單元205利用文件的存儲序列號確定返回文件的方式具體包括:從請求對應(yīng)的鏈接地址中提取文件的存儲路徑,并以文件的存儲序列號為名稱在文件的存儲路徑下進行查找,以得到與存儲序列號對應(yīng)的文件作為返回文件。
[0083]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
【權(quán)利要求】
1.一種向用戶提供文件的方法,包括: 根據(jù)文件的存儲序列號確定所述文件的存儲路徑,并將所述文件以所述存儲序列號為名稱保存到所述文件的存儲路徑下; 根據(jù)所述文件的存儲路徑確定所述文件在頁面上的鏈接地址; 當獲取到用戶對所述文件在頁面上的鏈接地址發(fā)送的請求時,根據(jù)所述請求對應(yīng)的鏈接地址確定所述文件的存儲序列號; 利用所述文件的存儲序列號確定所述文件,并將所述文件返回給用戶。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述文件的存儲序列號包括數(shù)字、字母、或者,數(shù)字與字母的組合。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)文件的存儲序列號確定所述文件的存儲路徑的步驟具體包括: 根據(jù)預(yù)設(shè)策略確定文件的存儲序列號; 在到達所述文件的尋址路徑中設(shè)定與所述文件的存儲序列號同名的目錄,得到所述文件的存儲路徑。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,根據(jù)所述文件的存儲路徑確定所述文件在頁面上的鏈接地址的步驟具體包括: 利用所述文件的存儲路徑和所述文件的主題名生成所述文件在頁面上的鏈接地址;或者, 生成隨機數(shù),并利用所述文件的存儲路徑和所述隨機數(shù)生成所述文件在頁面上的鏈接地址。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,根據(jù)所述請求對應(yīng)的鏈接地址確定所述文件的存儲序列號的步驟具體包括: 從所述請求對應(yīng)的鏈接地址包含的目錄中提取目錄名作為所述文件的存儲序列號。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,利用所述文件的存儲序列號確定所述文件的步驟具體包括: 使用所述文件的存儲序列號替換所述請求對應(yīng)的鏈接地址中的文件名,并對替換后的所述請求對應(yīng)的鏈接地址進行解析,以得到所述文件。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,利用所述文件的存儲序列號確定所述文件的步驟具體包括: 從所述請求對應(yīng)的鏈接地址中提取所述文件的存儲路徑,并以所述文件的存儲序列號為名稱在所述文件的存儲路徑下進行查找,以得到所述文件。
8.一種向用戶提供文件的裝置,包括: 路徑確定單元,用于根據(jù)文件的存儲序列號確定所述文件的存儲路徑; 存儲單元,用于將所述文件以所述存儲序列號為名稱保存到所述文件的存儲路徑下; 地址生成單元,用于根據(jù)所述文件的存儲路徑確定所述文件在頁面上的鏈接地址; 存儲號確定單元,用于當獲取到用戶對所述文件在頁面上的鏈接地址發(fā)送的請求時,根據(jù)所述請求對應(yīng)的鏈接地址確定所述文件的存儲序列號; 文件返回單元,用于利用所述文件的存儲序列號確定所述文件,并將所述文件返回給用戶。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述文件的存儲序列號包括數(shù)字、字母、或者,數(shù)字與字母的組合。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述路徑確定單元具體包括: 序列號確定單元,用于根據(jù)預(yù)設(shè)策略確定文件的存儲序列號; 目錄確定單元,用于在到達所述文件的尋址路徑中設(shè)定與所述文件的存儲序列號同名的目錄,得到所述文件的存儲路徑。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述地址生成單元具體包括: 第一鏈接單元,用于利用所述文件的存儲路徑和所述文件的主題名生成所述文件在頁面上的鏈接地址。
12.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述地址生成單元具體包括: 數(shù)字產(chǎn)生單元,用于生成隨機數(shù); 第二鏈接單元,用于利用所述文件的存儲路徑和所述隨機數(shù)生成所述文件在頁面上的鏈接地址。
13.根據(jù)權(quán)利要求11或12所述的裝置,其特征在于,所述存儲號確定單元根據(jù)所述請求對應(yīng)的鏈接地址確定所述文件的存儲序列號的方式具體包括: 從所述請求對應(yīng)的鏈`接地址包含的目錄中提取目錄名作為所述文件的存儲序列號。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述文件返回單元利用所述文件的存儲序列號確定所述文件的方式具體包括: 使用所述文件的存儲序列號替換所述請求對應(yīng)的鏈接地址中的文件名,并對替換后的所述請求對應(yīng)的鏈接地址進行解析,以得到所述文件。
15.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述文件返回單元利用所述文件的存儲序列號確定所述文件的方式具體包括: 從所述請求對應(yīng)的鏈接地址中提取所述文件的存儲路徑,并以所述文件的存儲序列號為名稱在所述文件的存儲路徑下進行查找,以得到所述文件。
【文檔編號】G06F17/30GK103678295SQ201210314358
【公開日】2014年3月26日 申請日期:2012年8月29日 優(yōu)先權(quán)日:2012年8月29日
【發(fā)明者】陸冬 申請人:北京百度網(wǎng)訊科技有限公司