本申請涉及圖片處理技術(shù)領(lǐng)域,尤其涉及一種圖片存儲方法和服務(wù)器。
背景技術(shù):
服務(wù)器接收到上傳圖片后,會將圖片存儲到服務(wù)器中的同一目錄下,或?qū)⑵涠逊e在少數(shù)幾個目錄中,大量的圖片沒有規(guī)則地存儲在服務(wù)器中。
當(dāng)前臺頁面被訪問需要加載圖片時,前臺頁面向服務(wù)器發(fā)送請求加載圖片地址的頁面圖片請求。服務(wù)器接收到該頁面圖片請求后,會在服務(wù)器硬盤上查找圖片文件。而由于所有的圖片都堆積在一個或少數(shù)幾個目錄中,圖片的數(shù)量非常多,這就導(dǎo)致了服務(wù)器檢索圖片的速度慢,增大了服務(wù)器檢索圖片的資源消耗,同時也導(dǎo)致了前臺網(wǎng)頁加載速度慢,大大降低了前臺頁面的讀取效率。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┮环N圖片存儲方法和服務(wù)器,以解決現(xiàn)有服務(wù)器存儲圖片的方法存在的服務(wù)器檢索圖片的速度慢、服務(wù)器檢索圖片的資源消耗較大、以及前臺網(wǎng)頁加載速度慢、讀取效率較低的問題。技術(shù)方案如下:
基于本申請的一方面,本申請?zhí)峁┮环N圖片存儲方法,包括:
獲取圖片的圖片信息;
采用預(yù)設(shè)的處理方法對所述圖片信息進行處理,獲得用于表征所述圖片的預(yù)設(shè)長度的字符串;
依據(jù)所述字符串,將所述圖片存儲至所述字符串指向的子級目錄下。
優(yōu)選地,所述圖片信息包括:圖片原文件名、當(dāng)前時間戳、若干位隨機數(shù)。
優(yōu)選地,所述采用預(yù)設(shè)的處理方法對所述圖片信息進行處理,獲得用于表征所述圖片的預(yù)設(shè)長度的字符串包括:
對所述圖片原文件名、當(dāng)前時間戳、和若干位隨機數(shù),作md5加密處理,獲得用于表征所述圖片的32位字符串。
優(yōu)選地,所述32位字符串中的第1、2位字符為所述服務(wù)器中存儲的父級目錄名稱,所述32位字符串中的第3、4位字符為所述父級目錄下的子級目錄名稱;
所述依據(jù)所述字符串,將所述圖片存儲至所述字符串指向的子級目錄下包括:
將所述圖片存儲至所述32位字符串中第1、2、3、4位字符指向的,服務(wù)器中存儲路徑為/ab/cd/的子級目錄下;其中,a、b、c、d分別為所述32位字符串中的第1、2、3、4位字符。
優(yōu)選地,還包括:
獲取所述32位字符串中的前16位字符;
將所述前16位字符作為所述圖片的圖片名稱。
基于本申請的另一方面,本申請?zhí)峁┮环N服務(wù)器,包括:
獲取單元,用于獲取圖片的圖片信息;
處理單元,用于采用預(yù)設(shè)的處理方法對所述圖片信息進行處理,獲得用于表征所述圖片的預(yù)設(shè)長度的字符串;
存儲單元,用于依據(jù)所述字符串,將所述圖片存儲至所述字符串指向的子級目錄下。
優(yōu)選地,所述圖片信息包括:圖片原文件名、當(dāng)前時間戳、若干位隨機數(shù)。
優(yōu)選地,所述處理單元具體用于,對所述圖片原文件名、當(dāng)前時間戳、和若干位隨機數(shù),作md5加密處理,獲得用于表征所述圖片的32位字符串。
優(yōu)選地,所述32位字符串中的第1、2位字符為所述服務(wù)器中存儲的父級目錄名稱,所述32位字符串中的第3、4位字符為所述父級目錄下的子級目錄名稱;
所述存儲單元具體用于,將所述圖片存儲至所述32位字符串中第1、2、3、4位字符指向的,服務(wù)器中存儲路徑為/ab/cd/的子級目錄下;其中,a、b、c、d分別為所述32位字符串中的第1、2、3、4位字符。
優(yōu)選地,所述服務(wù)器還包括:
字符獲取單元,用于獲取所述32位字符串中的前16位字符;
命名單元,用于將所述前16位字符作為所述圖片的圖片名稱。
本申請?zhí)峁┑膱D片存儲方法和服務(wù)器中,服務(wù)器在獲取到圖片后,并不是采用現(xiàn)有方法直接將其存儲在服務(wù)器中固定的同一目錄或少數(shù)幾個目錄中,而是獲取該圖片的圖片信息,采用預(yù)設(shè)的處理方法對所述圖片信息進行處理,獲得用于表征所述圖片的預(yù)設(shè)長度的字符串,進而依據(jù)所述字符串,將所述圖片存儲至所述字符串指向的子級目錄下。本申請中的服務(wù)器在存儲圖片時,都是先按照預(yù)設(shè)的處理方法,將圖片信息處理為一串滿足一定規(guī)則的字符串,進而依據(jù)該滿足一定規(guī)則的字符串對圖片進行規(guī)則存儲,在服務(wù)器中呈現(xiàn)出父級目錄-子級目錄的規(guī)則存儲形式,由此,本申請通過對圖片的存儲路徑進行優(yōu)化,使得大量的圖片被分別存儲至不同的子級目錄下,服務(wù)器在檢索圖片時,能夠快速地定位到圖片所在的子級目錄,且由于每個子級目錄中的圖片數(shù)量不會很大,服務(wù)器便能夠很快地檢索到圖片,這相比于現(xiàn)有技術(shù)大大降低了服務(wù)器檢索圖片的資源消耗。且對于前臺頁面來說,前臺頁面在加載圖片地址時,能夠及時地接收到服務(wù)器返回的圖片地址,提高了前臺頁面的加載速度和讀取效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請?zhí)峁┑囊环N圖片存儲方法的流程圖;
圖2為本申請?zhí)峁┑囊环N服務(wù)器的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1,其示出了本申請?zhí)峁┑囊环N圖片存儲方法的流程圖,包括:
步驟101,獲取圖片的圖片信息。
在實際應(yīng)用過程中,主服務(wù)器(亦稱只寫服務(wù)器)用于接收用戶上傳的圖片。主服務(wù)器存儲圖片后,會定時將圖片同步存儲至多臺從服務(wù)器(亦稱只讀服務(wù)器)中,該從服務(wù)器中的圖片用于供前臺頁面調(diào)用使用。
具體在本申請中,主服務(wù)器接收到用戶上傳的圖片時,同時獲取該圖片的圖片信息。其中圖片的圖片信息包括:圖片原文件名、當(dāng)前時間戳、若干位隨機數(shù)。
其中當(dāng)前時間戳指的是圖片上傳至主服務(wù)器的當(dāng)前時刻,若干位隨機數(shù)指的是系統(tǒng)隨機給出的若干位的數(shù)值,該若干位隨機數(shù)在不影響程序的性能的前提下越大越好,如為100000~999999之間的數(shù)值。
步驟102,采用預(yù)設(shè)的處理方法對所述圖片信息進行處理,獲得用于表征所述圖片的預(yù)設(shè)長度的字符串。
具體的,本申請對所述圖片原文件名、當(dāng)前時間戳、和若干位隨機數(shù),作md5加密處理,獲得用于表征所述圖片的32位字符串。該32位字符串的長度固定且唯一,用于表征所述圖片。
例如,對于圖片a的圖片原文件名、當(dāng)前時間戳、和若干位隨機數(shù)作md5加密處理后,獲得的32位字符串為“f148ac2746e6095994252c24c19bc77a”,該32位字符串“f148ac2746e6095994252c24c19bc77a”具有唯一性,用于表征所述圖片a。
步驟103,依據(jù)所述字符串,將所述圖片存儲至所述字符串指向的子級目錄下。
在本申請實際應(yīng)用過程中,會截取該32位字符串“f148ac2746e6095994252c24c19bc77a”中的前兩位,即第1、2位字符“f1”作為父級目錄名稱,截取該32位字符串“f148ac2746e6095994252c24c19bc77a”中的第3、4位字符“48”作為該父級目錄下的子級目錄名稱。當(dāng)然,本申請對于字符串的截取方法不作限定,例如本申請還可以為截取32位字符串中的第1、2、3位字符“f14”作為父級目錄名稱,截取32位字符串中的第4、5、6位字符“8ac”作為該父級目錄名稱下的子級目錄名稱等。
本申請中,第一級目錄(即父級目錄)最多可以有256個第二級目錄(即子級目錄),第二級目錄最多可以有16個用于存儲圖片的圖片文件,打開該圖片文件,便可直接獲取到圖片。本申請中的圖片分散存儲在各個子級目錄中,不會堆積在同一個目錄中。
現(xiàn)有技術(shù)在存儲圖片時,會將所有圖片存儲在同一目錄或少數(shù)幾個目錄下,并未對圖片的存儲路徑進行規(guī)劃,而本申請則是將圖片分散存儲在各個子級目錄中,對圖片的存儲路徑進行了優(yōu)化。以存儲1萬張圖片為例來說,假設(shè)現(xiàn)有技術(shù)將該1萬張圖片全部存儲在同一目錄下,那么現(xiàn)有技術(shù)中前臺頁面需要加載圖片地址時,服務(wù)器需要打開該包括1萬張圖片的目錄,進而在該包括1萬張圖片的目錄下去檢索前臺頁面需要加載的圖片地址,而本申請則是將該1萬個圖片平均分布在經(jīng)過預(yù)設(shè)處理方法處理得到的多個子級目錄中,那么顯然,在后續(xù)前臺頁面需要加載圖片地址時,現(xiàn)有技術(shù)中的服務(wù)器需要打開該包括1萬張圖片的目錄進而檢索圖片地址的效率大大低于本申請中服務(wù)器直接定位至子級目錄,直接在子級目錄中檢索圖片地址的效率。本申請實現(xiàn)了能夠快速地定位到包含圖片的子級目錄并檢索所需圖片地址,大大提高了圖片地址的檢索效率。
本申請步驟102中對圖片信息采用預(yù)設(shè)的處理方法進行處理后,能夠得到一組滿足一定規(guī)則的32位字符串,因為本申請已預(yù)先定義了該滿足一定規(guī)則的32位字符串中第1、2位字符為父級目錄名稱,第3、4位字符為該父級目錄下的子級目錄名稱,因此依據(jù)獲得的用于表征圖片a的32位字符串“f148ac2746e6095994252c24c19bc77a”后,將該圖片a存儲至該32位字符串“f148ac2746e6095994252c24c19bc77a”中第1、2、3、4位字符指向的,主服務(wù)器中存儲路徑為/f1/48/的子級目錄下。
優(yōu)選地,本申請在存儲圖片a時,獲取表征該圖片a的32位字符串“f148ac2746e6095994252c24c19bc77a”中的前16位字符“f148ac2746e60959”,將該前16位字符“f148ac2746e60959”作為所述圖片a的圖片名稱。
主服務(wù)器以該前16位字符“f148ac2746e60959”作為圖片名稱,將圖片a存儲在存儲路徑為/f1/48/的子級目錄下,進而通過服務(wù)器級的文件系統(tǒng)同步機制,將圖片名稱為“f148ac2746e60959”的圖片a同步到從服務(wù)器上。那么當(dāng)頁面向從服務(wù)器請求加載圖片a時,從服務(wù)器能夠依據(jù)該圖片a的圖片名稱“f148ac2746e60959”快速地訪問到該圖片a,提高了圖片的訪問效率。
因此應(yīng)用本申請?zhí)峁┑膱D片存儲方法,主服務(wù)器在獲取到圖片后,并不是采用現(xiàn)有方法直接將其存儲在主服務(wù)器中固定的同一目錄或少數(shù)幾個目錄中,而是獲取該圖片的圖片信息,采用預(yù)設(shè)的處理方法對所述圖片信息進行處理,獲得用于表征所述圖片的預(yù)設(shè)長度的字符串,進而依據(jù)所述字符串,將所述圖片存儲至所述字符串指向的子級目錄下。本申請中的主服務(wù)器在存儲圖片時,都是先按照預(yù)設(shè)的處理方法,將圖片信息處理為一串滿足一定規(guī)則的字符串,進而依據(jù)該滿足一定規(guī)則的字符串對圖片進行規(guī)則存儲,在主服務(wù)器中呈現(xiàn)出父級目錄-子級目錄的規(guī)則存儲形式,由此,本申請通過對圖片的存儲路徑進行優(yōu)化,使得大量的圖片被分別存儲至不同的子級目錄下。從服務(wù)器在檢索圖片時,能夠快速地定位到圖片所在的子級目錄,且由于每個子級目錄中的圖片數(shù)量不會很大,從服務(wù)器便能夠很快地檢索到圖片,這相比于現(xiàn)有技術(shù)大大降低了服務(wù)器檢索圖片的資源消耗。且對于前臺頁面來說,前臺頁面在加載圖片地址時,能夠及時地接收到從服務(wù)器返回的圖片地址,提高了前臺頁面的加載速度和讀取效率。
基于前文本申請?zhí)峁┑囊环N圖片存儲方法,本申請還提供一種服務(wù)器,如圖2所示,包括:
獲取單元100,用于獲取圖片的圖片信息;
處理單元200,用于采用預(yù)設(shè)的處理方法對所述圖片信息進行處理,獲得用于表征所述圖片的預(yù)設(shè)長度的字符串;
存儲單元300,用于依據(jù)所述字符串,將所述圖片存儲至所述字符串指向的子級目錄下。
其中所述圖片信息包括:圖片原文件名、當(dāng)前時間戳、若干位隨機數(shù)。
所述處理單元200具體用于,對所述圖片原文件名、當(dāng)前時間戳、和若干位隨機數(shù),作md5加密處理,獲得用于表征所述圖片的32位字符串。
本申請中,所述32位字符串中的第1、2位字符為所述服務(wù)器中存儲的父級目錄名稱,所述32位字符串中的第3、4位字符為所述父級目錄下的子級目錄名稱;所述存儲單元300具體用于,將所述圖片存儲至所述32位字符串中第1、2、3、4位字符指向的,服務(wù)器中存儲路徑為/ab/cd/的子級目錄下;其中,a、b、c、d分別為所述32位字符串中的第1、2、3、4位字符。
優(yōu)選地,本申請?zhí)峁┑姆?wù)器還包括:
字符獲取單元400,用于獲取所述32位字符串中的前16位字符;
命名單元500,用于將所述前16位字符作為所述圖片的圖片名稱。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對本申請所提供的一種圖片存儲方法和服務(wù)器進行了詳細介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。