亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

圖片存儲方法、設(shè)備和計算機(jī)存儲介質(zhì)與流程

文檔序號:11216425閱讀:471來源:國知局
本發(fā)明涉及數(shù)據(jù)處理
技術(shù)領(lǐng)域
:,尤其涉及一種圖片存儲方法、設(shè)備和計算機(jī)存儲介質(zhì)。
背景技術(shù)
::隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,以及人們對圖片等的依賴越來越強(qiáng)烈。在互聯(lián)網(wǎng)應(yīng)用中,圖片的存儲和展現(xiàn)是一種非常常見的需求,現(xiàn)有的圖片文件的存儲方式是根據(jù)日期建立文件夾,將當(dāng)天上傳的圖片文件存儲至對應(yīng)日期的文件夾中。例如,按照每天都建立一個文件夾的方式,那么2017年4月1日的圖片文件就會存儲至2017年4月1日這個文件夾中,2017年4月2日的圖片文件就會存儲至2017年4月2日這個文件夾中。然后,在有大量圖片文件需要存儲的時候,由于每臺服務(wù)器受限于磁盤的大小,不能無限量的存放文件,且如果在一個文件目錄下存儲過多的文件,也會存在性能的問題,因此,一般單個目錄下文件的數(shù)目是有限制的。上述存儲方式所導(dǎo)致的問題就是文件存儲不均,且在圖片文件過多的時候,容易導(dǎo)致某些文件夾負(fù)荷過大,導(dǎo)致服務(wù)器性能受到影響。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的主要目的在于提出一種圖片存儲方法、設(shè)備和計算機(jī)存儲介質(zhì),旨在解決現(xiàn)有的按照上傳日期存儲圖片文件而導(dǎo)致的文件分布不均,服務(wù)器性能受到影響的技術(shù)問題。為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種圖片存儲方法,包括:獲取待存儲圖片文件的文件信息;根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑;將所述待存儲圖片文件按照所述文件存儲路徑進(jìn)行存儲。在一個實(shí)施方式中,根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑的步驟,包括:按照所述預(yù)設(shè)算法將所述文件信息轉(zhuǎn)換為預(yù)設(shè)位數(shù)的字符串;從所述預(yù)設(shè)位數(shù)的字符串中提取出預(yù)定位置的字符作為文件名和文件存儲路徑??蛇x的,所述文件存儲路徑包括以下至少之一:服務(wù)器、一級目錄和二級目錄。可選的,所述文件信息包括以下至少之一:文件的crc32值、文件的長度、文件的上傳時間??蛇x的,所述預(yù)設(shè)算法包括:base64算法和/或md5算法??蛇x的,在所述文件信息包括:文件的crc32值、文件的長度和文件的上傳時間,所述預(yù)設(shè)算法包括:base64算法和md5算法的情況下,根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑的步驟,包括:對所述文件的crc32值、文件的長度和文件的上傳時間進(jìn)行拼接;對拼接后的結(jié)果做base62計算;將計算結(jié)果進(jìn)行md5計算得到md5值;將md5值轉(zhuǎn)換為32位的16進(jìn)制字符串;從所述32位的16進(jìn)制字符串中選取預(yù)定位置的字符作為文件名和文件存儲路徑??蛇x的,從所述32位的16進(jìn)制字符串中選取預(yù)定位置的字符作為文件名的步驟,包括:根據(jù)所述待存儲圖片文件的大小確定文件名的長度;根據(jù)確定的文件名長度從所述32位的16進(jìn)制字符串中選取該長度的字符作為文件名。此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種圖片存儲設(shè)備,包括:處理器、存儲器及通信總線;所述通信總線用于實(shí)現(xiàn)處理器和存儲器之間的連接通信;所述處理器用于執(zhí)行存儲器中存儲的圖片存儲程序,以實(shí)現(xiàn)以下步驟:獲取待存儲圖片文件的文件信息;根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑;將所述待存儲圖片文件按照所述文件存儲路徑進(jìn)行存儲??蛇x的,根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑的步驟,包括:按照所述預(yù)設(shè)算法將所述文件信息轉(zhuǎn)換為預(yù)設(shè)位數(shù)的字符串;從所述預(yù)設(shè)位數(shù)的字符串中提取出預(yù)定位置的字符作為文件名和文件存儲路徑??蛇x的,所述文件存儲路徑包括以下至少之一:服務(wù)器、一級目錄和二級目錄??蛇x的,所述文件信息包括以下至少之一:文件的crc32值、文件的長度、文件的上傳時間??蛇x的,所述預(yù)設(shè)算法包括:base64算法和/或md5算法??蛇x的,在所述文件信息包括:文件的crc32值、文件的長度和文件的上傳時間,所述預(yù)設(shè)算法包括:base64算法和/或md5算法的情況下,根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑,包括:對所述文件的crc32值、文件的長度和文件的上傳時間進(jìn)行拼接;對拼接后的結(jié)果做base62計算;將計算結(jié)果進(jìn)行md5計算得到md5值;將md5值轉(zhuǎn)換為32位的16進(jìn)制字符串;從所述32位的16進(jìn)制字符串中選取預(yù)定位置的字符作為文件名和文件存儲路徑??蛇x的,從所述32位的16進(jìn)制字符串中選取預(yù)定位置的字符作為文件名,包括:根據(jù)所述待存儲圖片文件的大小確定文件名的長度;根據(jù)確定的文件名長度從所述32位的16進(jìn)制字符串中選取該長度的字符作為文件名。此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執(zhí)行,以實(shí)現(xiàn)以下步驟:獲取待存儲圖片文件的文件信息;根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑;將所述待存儲圖片文件按照所述文件存儲路徑進(jìn)行存儲??蛇x的,根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑,包括:按照所述預(yù)設(shè)算法將所述文件信息轉(zhuǎn)換為預(yù)設(shè)位數(shù)的字符串;從所述預(yù)設(shè)位數(shù)的字符串中提取出預(yù)定位置的字符作為文件名和文件存儲路徑??蛇x的,所述文件存儲路徑包括以下至少之一:服務(wù)器、一級目錄和二級目錄??蛇x的,所述文件信息包括以下至少之一:文件的crc32值、文件的長度、文件的上傳時間。可選的,所述預(yù)設(shè)算法包括:base64算法和/或md5算法??蛇x的,在所述文件信息包括:文件的crc32值、文件的長度和文件的上傳時間,所述預(yù)設(shè)算法包括:base64算法和/或md5算法的情況下,根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑,包括:對所述文件的crc32值、文件的長度和文件的上傳時間進(jìn)行拼接;對拼接后的結(jié)果做base62計算;將計算結(jié)果進(jìn)行md5計算得到md5值;將md5值轉(zhuǎn)換為32位的16進(jìn)制字符串;從所述32位的16進(jìn)制字符串中選取預(yù)定位置的字符作為文件名和文件存儲路徑。可選的,從所述32位的16進(jìn)制字符串中選取預(yù)定位置的字符作為文件名,包括:根據(jù)所述待存儲圖片文件的大小確定文件名的長度;根據(jù)確定的文件名長度從所述32位的16進(jìn)制字符串中選取該長度的字符作為文件名。本發(fā)明提出的一種圖片文件存儲方法、設(shè)備,通過獲取待存儲圖片文件的文件信息,并基于文件信息按照預(yù)設(shè)算法,計算得到待存儲圖片文件的文件存儲路徑,從而避免了現(xiàn)有的按照上傳日期存儲圖片文件而導(dǎo)致的文件分布不均,服務(wù)器性能受到影響的技術(shù)問題,達(dá)到了均勻存儲圖片文件,保證服務(wù)器性能的技術(shù)效果。附圖說明圖1為實(shí)現(xiàn)本發(fā)明各個實(shí)施例一可選的移動終端的硬件結(jié)構(gòu)示意圖;圖2為如圖1所示的移動終端的無線通信系統(tǒng)示意圖;圖3為本發(fā)明第一實(shí)施例的圖片存儲方法的方法流程圖;圖4為本發(fā)明第二實(shí)施例的圖片存儲方法的方法流程圖;圖5為本發(fā)明第三實(shí)施例的圖片存儲設(shè)備的架構(gòu)示意圖;本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。具體實(shí)施方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身沒有特定的意義。因此,“模塊”、“部件”或“單元”可以混合地使用。終端可以以各種形式來實(shí)施。例如,本發(fā)明中描述的終端可以包括諸如手機(jī)、平板電腦、筆記本電腦、掌上電腦、個人數(shù)字助理(personaldigitalassistant,pda)、便捷式媒體播放器(portablemediaplayer,pmp)、導(dǎo)航裝置、可穿戴設(shè)備、智能手環(huán)、計步器等移動終端,以及諸如數(shù)字tv、臺式計算機(jī)等固定終端。后續(xù)描述中將以移動終端為例進(jìn)行說明,本領(lǐng)域技術(shù)人員將理解的是,除了特別用于移動目的的元件之外,根據(jù)本發(fā)明的實(shí)施方式的構(gòu)造也能夠應(yīng)用于固定類型的終端。請參閱圖1,其為實(shí)現(xiàn)本發(fā)明各個實(shí)施例的一種移動終端的硬件結(jié)構(gòu)示意圖,該移動終端100可以包括:rf(radiofrequency,射頻)單元101、wifi模塊102、音頻輸出單元103、a/v(音頻/視頻)輸入單元104、傳感器105、顯示單元106、用戶輸入單元107、接口單元108、存儲器109、處理器110、以及電源111等部件。本領(lǐng)域技術(shù)人員可以理解,圖1中示出的移動終端結(jié)構(gòu)并不構(gòu)成對移動終端的限定,移動終端可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。下面結(jié)合圖1對移動終端的各個部件進(jìn)行具體的介紹:射頻單元101可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,具體的,將基站的下行信息接收后,給處理器110處理;另外,將上行的數(shù)據(jù)發(fā)送給基站。通常,射頻單元101包括但不限于天線、至少一個放大器、收發(fā)信機(jī)、耦合器、低噪聲放大器、雙工器等。此外,射頻單元101還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。上述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于gsm(globalsystemofmobilecommunication,全球移動通訊系統(tǒng))、gprs(generalpacketradioservice,通用分組無線服務(wù))、cdma2000(codedivisionmultipleaccess2000,碼分多址2000)、wcdma(widebandcodedivisionmultipleaccess,寬帶碼分多址)、td-scdma(timedivision-synchronouscodedivisionmultipleaccess,時分同步碼分多址)、fdd-lte(frequencydivisionduplexing-longtermevolution,頻分雙工長期演進(jìn))和tdd-lte(timedivisionduplexing-longtermevolution,分時雙工長期演進(jìn))等。wifi屬于短距離無線傳輸技術(shù),移動終端通過wifi模塊102可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖1示出了wifi模塊102,但是可以理解的是,其并不屬于移動終端的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。音頻輸出單元103可以在移動終端100處于呼叫信號接收模式、通話模式、記錄模式、語音識別模式、廣播接收模式等等模式下時,將射頻單元101或wifi模塊102接收的或者在存儲器109中存儲的音頻數(shù)據(jù)轉(zhuǎn)換成音頻信號并且輸出為聲音。而且,音頻輸出單元103還可以提供與移動終端100執(zhí)行的特定功能相關(guān)的音頻輸出(例如,呼叫信號接收聲音、消息接收聲音等等)。音頻輸出單元103可以包括揚(yáng)聲器、蜂鳴器等等。a/v輸入單元104用于接收音頻或視頻信號。a/v輸入單元104可以包括圖形處理器(graphicsprocessingunit,gpu)1041和麥克風(fēng)1042,圖形處理器1041對在視頻捕獲模式或圖像捕獲模式中由圖像捕獲裝置(如攝像頭)獲得的靜態(tài)圖片或視頻的圖像數(shù)據(jù)進(jìn)行處理。處理后的圖像幀可以顯示在顯示單元106上。經(jīng)圖形處理器1041處理后的圖像幀可以存儲在存儲器109(或其它存儲介質(zhì))中或者經(jīng)由射頻單元101或wifi模塊102進(jìn)行發(fā)送。麥克風(fēng)1042可以在電話通話模式、記錄模式、語音識別模式等等運(yùn)行模式中經(jīng)由麥克風(fēng)1042接收聲音(音頻數(shù)據(jù)),并且能夠?qū)⑦@樣的聲音處理為音頻數(shù)據(jù)。處理后的音頻(語音)數(shù)據(jù)可以在電話通話模式的情況下轉(zhuǎn)換為可經(jīng)由射頻單元101發(fā)送到移動通信基站的格式輸出。麥克風(fēng)1042可以實(shí)施各種類型的噪聲消除(或抑制)算法以消除(或抑制)在接收和發(fā)送音頻信號的過程中產(chǎn)生的噪聲或者干擾。移動終端100還包括至少一種傳感器105,比如光傳感器、運(yùn)動傳感器以及其他傳感器。具體地,光傳感器包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板1061的亮度,接近傳感器可在移動終端100移動到耳邊時,關(guān)閉顯示面板1061和/或背光。作為運(yùn)動傳感器的一種,加速計傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計姿態(tài)校準(zhǔn))、振動識別相關(guān)功能(比如計步器、敲擊)等;至于手機(jī)還可配置的指紋傳感器、壓力傳感器、虹膜傳感器、分子傳感器、陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。顯示單元106用于顯示由用戶輸入的信息或提供給用戶的信息。顯示單元106可包括顯示面板1061,可以采用液晶顯示器(liquidcrystaldisplay,lcd)、有機(jī)發(fā)光二極管(organiclight-emittingdiode,oled)等形式來配置顯示面板1061。用戶輸入單元107可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與移動終端的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。具體地,用戶輸入單元107可包括觸控面板1071以及其他輸入設(shè)備1072。觸控面板1071,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板1071上或在觸控面板1071附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動相應(yīng)的連接裝置。觸控面板1071可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器110,并能接收處理器110發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸控面板1071。除了觸控面板1071,用戶輸入單元107還可以包括其他輸入設(shè)備1072。具體地,其他輸入設(shè)備1072可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種,具體此處不做限定。進(jìn)一步的,觸控面板1071可覆蓋顯示面板1061,當(dāng)觸控面板1071檢測到在其上或附近的觸摸操作后,傳送給處理器110以確定觸摸事件的類型,隨后處理器110根據(jù)觸摸事件的類型在顯示面板1061上提供相應(yīng)的視覺輸出。雖然在圖1中,觸控面板1071與顯示面板1061是作為兩個獨(dú)立的部件來實(shí)現(xiàn)移動終端的輸入和輸出功能,但是在某些實(shí)施例中,可以將觸控面板1071與顯示面板1061集成而實(shí)現(xiàn)移動終端的輸入和輸出功能,具體此處不做限定。接口單元108用作至少一個外部裝置與移動終端100連接可以通過的接口。例如,外部裝置可以包括有線或無線頭戴式耳機(jī)端口、外部電源(或電池充電器)端口、有線或無線數(shù)據(jù)端口、存儲卡端口、用于連接具有識別模塊的裝置的端口、音頻輸入/輸出(i/o)端口、視頻i/o端口、耳機(jī)端口等等。接口單元108可以用于接收來自外部裝置的輸入(例如,數(shù)據(jù)信息、電力等等)并且將接收到的輸入傳輸?shù)揭苿咏K端100內(nèi)的一個或多個元件或者可以用于在移動終端100和外部裝置之間傳輸數(shù)據(jù)。存儲器109可用于存儲軟件程序以及各種數(shù)據(jù)。存儲器109可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)手機(jī)的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器109可以包括高速隨機(jī)存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。處理器110是移動終端的控制中心,利用各種接口和線路連接整個移動終端的各個部分,通過運(yùn)行或執(zhí)行存儲在存儲器109內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器109內(nèi)的數(shù)據(jù),執(zhí)行移動終端的各種功能和處理數(shù)據(jù),從而對移動終端進(jìn)行整體監(jiān)控。處理器110可包括一個或多個處理單元;優(yōu)選的,處理器110可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器110中。移動終端100還可以包括給各個部件供電的電源111(比如電池),優(yōu)選的,電源111可以通過電源管理系統(tǒng)與處理器110邏輯相連,從而通過電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。盡管圖1未示出,移動終端100還可以包括藍(lán)牙模塊等,在此不再贅述。為了便于理解本發(fā)明實(shí)施例,下面對本發(fā)明的移動終端所基于的通信網(wǎng)絡(luò)系統(tǒng)進(jìn)行描述。請參閱圖2,圖2為本發(fā)明實(shí)施例提供的一種通信網(wǎng)絡(luò)系統(tǒng)架構(gòu)圖,該通信網(wǎng)絡(luò)系統(tǒng)為通用移動通信技術(shù)的lte系統(tǒng),該lte系統(tǒng)包括依次通訊連接的ue(userequipment,用戶設(shè)備)201,e-utran(evolvedumtsterrestrialradioaccessnetwork,演進(jìn)式umts陸地?zé)o線接入網(wǎng))202,epc(evolvedpacketcore,演進(jìn)式分組核心網(wǎng))203和運(yùn)營商的ip業(yè)務(wù)204。具體地,ue201可以是上述終端100,此處不再贅述。e-utran202包括enodeb2021和其它enodeb2022等。其中,enodeb2021可以通過回程(backhaul)(例如x2接口)與其它enodeb2022連接,enodeb2021連接到epc203,enodeb2021可以提供ue201到epc203的接入。epc203可以包括mme(mobilitymanagemententity,移動性管理實(shí)體)2031,hss(homesubscriberserver,歸屬用戶服務(wù)器)2032,其它mme2033,sgw(servinggateway,服務(wù)網(wǎng)關(guān))2034,pgw(pdngateway,分組數(shù)據(jù)網(wǎng)絡(luò)網(wǎng)關(guān))2035和pcrf(policyandchargingrulesfunction,政策和資費(fèi)功能實(shí)體)2036等。其中,mme2031是處理ue201和epc203之間信令的控制節(jié)點(diǎn),提供承載和連接管理。hss2032用于提供一些寄存器來管理諸如歸屬位置寄存器(圖中未示)之類的功能,并且保存有一些有關(guān)服務(wù)特征、數(shù)據(jù)速率等用戶專用的信息。所有用戶數(shù)據(jù)都可以通過sgw2034進(jìn)行發(fā)送,pgw2035可以提供ue201的ip地址分配以及其它功能,pcrf2036是業(yè)務(wù)數(shù)據(jù)流和ip承載資源的策略與計費(fèi)控制策略決策點(diǎn),它為策略與計費(fèi)執(zhí)行功能單元(圖中未示)選擇及提供可用的策略和計費(fèi)控制決策。ip業(yè)務(wù)204可以包括因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、ims(ipmultimediasubsystem,ip多媒體子系統(tǒng))或其它ip業(yè)務(wù)等。雖然上述以lte系統(tǒng)為例進(jìn)行了介紹,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)知曉,本發(fā)明不僅僅適用于lte系統(tǒng),也可以適用于其他無線通信系統(tǒng),例如gsm、cdma2000、wcdma、td-scdma以及未來新的網(wǎng)絡(luò)系統(tǒng)等,此處不做限定?;谏鲜鲆苿咏K端硬件結(jié)構(gòu)以及通信網(wǎng)絡(luò)系統(tǒng),提出本發(fā)明方法各個實(shí)施例。本發(fā)明第一實(shí)施例提供了一種圖片存儲方法,如圖3所示,可以包括如下步驟:步驟301:獲取待存儲圖片文件的文件信息;上述待存儲圖片文件可以是用戶上傳的文件,例如,用戶為了實(shí)現(xiàn)修圖上傳的圖片文件,也可以是用戶相機(jī)拍攝實(shí)時得到的圖片文件,或者是用戶在聊天等過程中上傳的圖片文件等等。即,上述的待存儲圖片文件的來源不作限定,只要是最終需要存儲的圖片文件都可以作為待存儲的圖片文件??紤]到對于有些需要處理的圖片很多的應(yīng)用的服務(wù)器而言,例如,圖片的云存儲應(yīng)用,在服務(wù)器側(cè)會產(chǎn)生大量的圖片存儲需求,如果對這些圖片進(jìn)行高效的存儲,是需要考慮的問題。現(xiàn)有的一般就按照日期,例如,2017年4月19日存儲的文件就存儲在這一個文件夾中,即,這個文件夾只存儲這一天的圖片文件。然而有的時候,有些天圖片文件比較多,有時候圖片文件比較少,如果按照上傳日期進(jìn)行劃分,往往會導(dǎo)致文件夾負(fù)荷不均勻,造成圖片文件的不合理存儲的問題。在本例就是為了解決這種問題,因此不再是依賴文件上傳的日期確定文件存儲的路徑,而是基于圖片文件,本身一些固有的信息。例如,文件的大小,文件的長度等等,因?yàn)檫@些信息本身對于每個圖片文件而言是具備隨機(jī)性的,按照這種信息進(jìn)行文件存儲路徑的選擇,可以有效避免文件突發(fā)情況所存在的服務(wù)器負(fù)荷不均勻的問題。步驟302:根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑;在獲取到待存儲圖片文件的一些基本信息之后,可以基于這些信息按照預(yù)設(shè)的算法計算得到一個字符串,然后從這個字符串提取出文件的存儲路徑和文件名等信息,因?yàn)楸旧砦募陨淼幕拘畔⑹请S機(jī),按照預(yù)設(shè)算法進(jìn)行處理之后,所得到的字符串更是隨機(jī)的,基于此,所得到的存儲路徑和存儲文件等都是隨機(jī)的。這樣在待儲存的圖片文件特別多的時候,可以有效時間待存儲圖片文件的隨機(jī)存儲,以便將圖片文件存儲至不同的服務(wù)器或者不同的存儲目錄中,不會導(dǎo)致某些文件夾存儲文件太少,而另一些又存儲負(fù)荷過大的問題。上述的存儲路徑可以包括,文件需要存儲至的服務(wù)器、一級目錄、二級目錄等等。進(jìn)一步的,如果僅有一個服務(wù)器那么可以不確定服務(wù)器,僅確定存儲的目錄,如果有多個服務(wù)器,例如有20個服務(wù)器,那么就從這20個服務(wù)器里面確定出需要存儲至的服務(wù)器。舉例而言,上述文件信息可以包括:文件的循環(huán)冗余校驗(yàn)(cyclicredundancycheck,簡稱為crc)32值、文件的長度和文件的上傳時間,上述預(yù)設(shè)算法可以包括:base64算法和/或md5算法(messagedigestalgorithmmd5,消息摘要算法第五版)?;谏鲜龅奈募畔⒑皖A(yù)設(shè)算法,可以按照如下步驟計算得到文件存儲路徑:s1:對文件的crc32值、文件的長度和文件的上傳時間進(jìn)行拼接;s2:對拼接后的結(jié)果做base62計算;s3:將計算結(jié)果進(jìn)行md5計算得到md5值;s4:將md5值轉(zhuǎn)換為32位的16進(jìn)制字符串;s5:從所述32位的16進(jìn)制字符串中選取預(yù)定位置的字符作為文件名和文件存儲路徑。例如,在待存儲的圖片文件上傳后,獲取文件的crc32值、文件長度、文件上傳時間,然后將這三個值拼接起來做base64計算,算法如下:base64(crc32+文件長度+文件上傳時間)。然后,將得出的結(jié)果進(jìn)行md5計算,算法如下:md5(base64(crc32+文件長度+文件上傳時間))。最終將得到的文件的md5值轉(zhuǎn)化成16進(jìn)制,最終得到32位的16進(jìn)制的字符串。假設(shè)一個文件為10kb,16^2x16^2x16^4/1024/1024/100=40.96tb。例如,一個云服務(wù)器支持128tb的磁盤。實(shí)際可以根據(jù)上傳文件大小進(jìn)行容量規(guī)劃。例如:文件過大比如一個文件為10m,那么只能取右邊三位作為文件名。如果只有單臺服務(wù)器,就可以舍棄前兩位作為服務(wù)器地址,直接從第三位取起,具體選取方式可以根據(jù)實(shí)際需要確定。步驟303:將所述待存儲圖片文件按照所述文件存儲路徑進(jìn)行存儲。在根據(jù)上述方法步驟確定完文件的存儲路徑和文件名之后,就可以將該待存儲文件存儲至對應(yīng)的服務(wù)器和對應(yīng)的文件目錄中了。本發(fā)明第二實(shí)施例提供了一種圖片存儲方法,在本例中,通過base64和md5計算作圖片文件的存儲路徑的計算方法,如圖4所示,可以包括如下步驟:步驟401:獲取待存儲圖片文件的文件信息,其中,文件信息包括文件的文件長度、文件上傳時間等信息;步驟402:根據(jù)所述文件信息通過md5計算得到md5值;步驟403:根據(jù)md5值按照預(yù)設(shè)的存儲路徑提取方法從md5值中提取出文件的存儲路徑。在上述步驟402中,可以是在獲取了文件的crc32值、文件長度和文件上傳時間之后,將這三個值進(jìn)行拼接,對拼接結(jié)果作為base64計算,然后進(jìn)行md5計算,例如,可以是按照md5(base64(crc32+文件長度+文件上傳時間))計算,得到一個字符串,例如得到一個32位的16進(jìn)制的字符串。根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑,可以包括:按照所述預(yù)設(shè)算法將所述文件信息轉(zhuǎn)換為預(yù)設(shè)位數(shù)的字符串;從所述預(yù)設(shè)位數(shù)的字符串中提取出預(yù)定位置的字符作為文件名和文件存儲路徑。上述的文件存儲路徑可以包括但不限于以下至少之一:服務(wù)器、一級目錄和二級目錄。上述文件信息可以包括但不限于以下至少之一:文件的crc32值、文件的長度、文件的上傳時間。上述預(yù)設(shè)算法可以包括但不限于以下至少之一:base64算法和/或md5算法。例如,在從所述32位的16進(jìn)制字符串中選取預(yù)定位置的字符作為文件名,可以包括:根據(jù)所述待存儲圖片文件的大小確定文件名的長度;根據(jù)確定的文件名長度從所述32位的16進(jìn)制字符串中選取該長度的字符作為文件名。舉例而言,得到的字符串為:57dafc2abe5044efa174d8530a275b4d?;谠撟址梢园凑杖缦掠嬎愕玫酱鎯β窂胶臀募簩τ诘贸龅膍d5值,取前兩位作為服務(wù)器路徑,以「57dafc2abe5044efa174d8530a275b4d」為例,「57」就是服務(wù)器名稱(具體取多少位作為服務(wù)器名稱可以根據(jù)服務(wù)器臺數(shù)決定,取一位為16臺服務(wù)器,因?yàn)槭?6進(jìn)制,有16種可能),兩位:16*16=256能支持256臺服務(wù)器,可以取第三位和第四位作為一級目錄,即「da」為一級目錄。取第五位和第六位為二級目錄,即「fc」為二級目錄,取右邊四位為文件名,即「5b4d」為文件名。然而上述所列舉的位數(shù)選取僅是一種示意性描述,在實(shí)際實(shí)現(xiàn)的時候,可以根據(jù)需要選擇合適的位數(shù),具體選取位數(shù)本申請不作限定。本發(fā)明第三實(shí)施例提出了一種圖片存儲設(shè)備,如圖5所示,可以包括:處理器501、存儲器502及通信總線503;通信總線503用于實(shí)現(xiàn)處理器501和存儲器502之間的連接通信;處理器501用于執(zhí)行存儲器502中存儲的圖片存儲程序,以實(shí)現(xiàn)以下步驟:獲取待存儲圖片文件的文件信息;根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑;將所述待存儲圖片文件按照所述文件存儲路徑進(jìn)行存儲。上述待存儲圖片文件可以是用戶上傳的文件,例如,用戶為了實(shí)現(xiàn)修圖上傳的圖片文件,也可以是用戶相機(jī)拍攝實(shí)時得到的圖片文件,或者是用戶在聊天等過程中上傳的圖片文件等等。即,上述的待存儲圖片文件的來源不作限定,只要是最終需要存儲的圖片文件都可以作為待存儲的圖片文件??紤]到對于有些需要處理的圖片很多的應(yīng)用的服務(wù)器而言,例如,圖片的云存儲應(yīng)用,在服務(wù)器側(cè)會產(chǎn)生大量的圖片存儲需求,如果對這些圖片進(jìn)行高效的存儲,是需要考慮的問題?,F(xiàn)有的一般就按照日期,例如,2017年4月19日存儲的文件就存儲在這一個文件夾中,即,這個文件夾只存儲這一天的圖片文件。然而有的時候,有些天圖片文件比較多,有時候圖片文件比較少,如果按照上傳日期進(jìn)行劃分,往往會導(dǎo)致文件夾負(fù)荷不均勻,造成圖片文件的不合理存儲的問題。在本例就是為了解決這種問題,因此不再是依賴文件上傳的日期確定文件存儲的路徑,而是基于圖片文件,本身一些固有的信息。例如,文件的大小,文件的長度等等,因?yàn)檫@些信息本身對于每個圖片文件而言是具備隨機(jī)性的,按照這種信息進(jìn)行文件存儲路徑的選擇,可以有效避免文件突發(fā)情況所存在的服務(wù)器負(fù)荷不均勻的問題。在獲取到待存儲圖片文件的一些基本信息之后,可以基于這些信息按照預(yù)設(shè)的算法計算得到一個字符串,然后從這個字符串提取出文件的存儲路徑和文件名等信息,因?yàn)楸旧砦募陨淼幕拘畔⑹请S機(jī),按照預(yù)設(shè)算法進(jìn)行處理之后,所得到的字符串更是隨機(jī)的,基于此,所得到的存儲路徑和存儲文件等都是隨機(jī)的。這樣在待儲存的圖片文件特別多的時候,可以有效時間待存儲圖片文件的隨機(jī)存儲,以便將圖片文件存儲至不同的服務(wù)器或者不同的存儲目錄中,不會導(dǎo)致某些文件夾存儲文件太少,而另一些又存儲負(fù)荷過大的問題。上述的存儲路徑可以包括,文件需要存儲至的服務(wù)器、一級目錄、二級目錄等等。進(jìn)一步的,如果僅有一個服務(wù)器那么可以不確定服務(wù)器,僅確定存儲的目錄,如果有多個服務(wù)器,例如有20個服務(wù)器,那么就從這20個服務(wù)器里面確定出需要存儲至的服務(wù)器。舉例而言,上述文件信息可以包括:文件的crc32值、文件的長度和文件的上傳時間,上述預(yù)設(shè)算法可以包括:base64算法和/或md5算法?;谏鲜龅奈募畔⒑皖A(yù)設(shè)算法,可以按照如下步驟計算得到文件存儲路徑:s1:對文件的crc32值、文件的長度和文件的上傳時間進(jìn)行拼接;s2:對拼接后的結(jié)果做base62計算;s3:將計算結(jié)果進(jìn)行md5計算得到md5值;s4:將md5值轉(zhuǎn)換為32位的16進(jìn)制字符串;s5:從所述32位的16進(jìn)制字符串中選取預(yù)定位置的字符作為文件名和文件存儲路徑。例如,在待存儲的圖片文件上傳后,獲取文件的crc32值、文件長度、文件上傳時間,然后將這三個值拼接起來做base64計算,算法如下:base64(crc32+文件長度+文件上傳時間)。然后,將得出的結(jié)果進(jìn)行md5計算,算法如下:md5(base64(crc32+文件長度+文件上傳時間))。最終將得到的文件的md5值轉(zhuǎn)化成16進(jìn)制,最終得到32位的16進(jìn)制的字符串,例如,得到的字符串為:57dafc2abe5044efa174d8530a275b4d?;谠撟址梢园凑杖缦掠嬎愕玫酱鎯β窂胶臀募簩τ诘贸龅膍d5值,取前兩位作為服務(wù)器路徑,以「57dafc2abe5044efa174d8530a275b4d」為例,「57」就是服務(wù)器名稱(具體取多少位作為服務(wù)器名稱可以根據(jù)服務(wù)器臺數(shù)決定,取一位為16臺服務(wù)器,因?yàn)槭?6進(jìn)制,有16種可能),兩位:16*16=256能支持256臺服務(wù)器,可以取第三位和第四位作為一級目錄,即「da」為一級目錄。取第五位和第六位為二級目錄,即「fc」為二級目錄,取右邊四位為文件名,即「5b4d」為文件名。然而上述所列舉的位數(shù)選取僅是一種示意性描述,在實(shí)際實(shí)現(xiàn)的時候,可以根據(jù)需要選擇合適的位數(shù),具體選取位數(shù)本申請不作限定。假設(shè)一個文件為10kb,16^2x16^2x16^4/1024/1024/100=40.96tb。例如,一個云服務(wù)器支持128tb的磁盤。實(shí)際可以根據(jù)上傳文件大小進(jìn)行容量規(guī)劃。例如:文件過大比如一個文件為10m,那么只能取右邊三位作為文件名。如果只有單臺服務(wù)器,就可以舍棄前兩位作為服務(wù)器地址,直接從第三位取起,具體選取方式可以根據(jù)實(shí)際需要確定。在根據(jù)上述方法步驟確定完文件的存儲路徑和文件名之后,就可以將該待存儲文件存儲至對應(yīng)的服務(wù)器和對應(yīng)的文件目錄中了。根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑,可以包括:按照所述預(yù)設(shè)算法將所述文件信息轉(zhuǎn)換為預(yù)設(shè)位數(shù)的字符串;從所述預(yù)設(shè)位數(shù)的字符串中提取出預(yù)定位置的字符作為文件名和文件存儲路徑。上述的文件存儲路徑可以包括但不限于以下至少之一:服務(wù)器、一級目錄和二級目錄。上述文件信息可以包括但不限于以下至少之一:文件的crc32值、文件的長度、文件的上傳時間。上述預(yù)設(shè)算法可以包括但不限于以下至少之一:base64算法和/或md5算法。本發(fā)明第四實(shí)施例提出了一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執(zhí)行,以實(shí)現(xiàn)以下步驟:獲取待存儲圖片文件的文件信息;根據(jù)所述文件信息按照預(yù)設(shè)算法,計算得到所述待存儲圖片文件的文件存儲路徑;將所述待存儲圖片文件按照所述文件存儲路徑進(jìn)行存儲。上述待存儲圖片文件可以是用戶上傳的文件,例如,用戶為了實(shí)現(xiàn)修圖上傳的圖片文件,也可以是用戶相機(jī)拍攝實(shí)時得到的圖片文件,或者是用戶在聊天等過程中上傳的圖片文件等等。即,上述的待存儲圖片文件的來源不作限定,只要是最終需要存儲的圖片文件都可以作為待存儲的圖片文件??紤]到對于有些需要處理的圖片很多的應(yīng)用的服務(wù)器而言,例如,圖片的云存儲應(yīng)用,在服務(wù)器側(cè)會產(chǎn)生大量的圖片存儲需求,如果對這些圖片進(jìn)行高效的存儲,是需要考慮的問題?,F(xiàn)有的一般就按照日期,例如,2017年4月19日存儲的文件就存儲在這一個文件夾中,即,這個文件夾只存儲這一天的圖片文件。然而有的時候,有些天圖片文件比較多,有時候圖片文件比較少,如果按照上傳日期進(jìn)行劃分,往往會導(dǎo)致文件夾負(fù)荷不均勻,造成圖片文件的不合理存儲的問題。在本例就是為了解決這種問題,因此不再是依賴文件上傳的日期確定文件存儲的路徑,而是基于圖片文件,本身一些固有的信息。例如,文件的大小,文件的長度等等,因?yàn)檫@些信息本身對于每個圖片文件而言是具備隨機(jī)性的,按照這種信息進(jìn)行文件存儲路徑的選擇,可以有效避免文件突發(fā)情況所存在的服務(wù)器負(fù)荷不均勻的問題。在獲取到待存儲圖片文件的一些基本信息之后,可以基于這些信息按照預(yù)設(shè)的算法計算得到一個字符串,然后從這個字符串提取出文件的存儲路徑和文件名等信息,因?yàn)楸旧砦募陨淼幕拘畔⑹请S機(jī),按照預(yù)設(shè)算法進(jìn)行處理之后,所得到的字符串更是隨機(jī)的,基于此,所得到的存儲路徑和存儲文件等都是隨機(jī)的。這樣在待儲存的圖片文件特別多的時候,可以有效時間待存儲圖片文件的隨機(jī)存儲,以便將圖片文件存儲至不同的服務(wù)器或者不同的存儲目錄中,不會導(dǎo)致某些文件夾存儲文件太少,而另一些又存儲負(fù)荷過大的問題。上述的存儲路徑可以包括,文件需要存儲至的服務(wù)器、一級目錄、二級目錄等等。進(jìn)一步的,如果僅有一個服務(wù)器那么可以不確定服務(wù)器,僅確定存儲的目錄,如果有多個服務(wù)器,例如有20個服務(wù)器,那么就從這20個服務(wù)器里面確定出需要存儲至的服務(wù)器。舉例而言,上述文件信息可以包括:文件的crc32值、文件的長度和文件的上傳時間,上述預(yù)設(shè)算法可以包括:base64算法和/或md5算法?;谏鲜龅奈募畔⒑皖A(yù)設(shè)算法,可以按照如下步驟計算得到文件存儲路徑:s1:對文件的crc32值、文件的長度和文件的上傳時間進(jìn)行拼接;s2:對拼接后的結(jié)果做base62計算;s3:將計算結(jié)果進(jìn)行md5計算得到md5值;s4:將md5值轉(zhuǎn)換為32位的16進(jìn)制字符串;s5:從所述32位的16進(jìn)制字符串中選取預(yù)定位置的字符作為文件名和文件存儲路徑。例如,在待存儲的圖片文件上傳后,獲取文件的crc32值、文件長度、文件上傳時間,然后將這三個值拼接起來做base64計算,算法如下:base64(crc32+文件長度+文件上傳時間)。然后,將得出的結(jié)果進(jìn)行md5計算,算法如下:md5(base64(crc32+文件長度+文件上傳時間))。最終將得到的文件的md5值轉(zhuǎn)化成16進(jìn)制,最終得到32位的16進(jìn)制的字符串,例如,得到的字符串為:57dafc2abe5044efa174d8530a275b4d。基于該字符串可以按照如下計算得到存儲路徑和文件名:對于得出的md5值,取前兩位作為服務(wù)器路徑,以「57dafc2abe5044efa174d8530a275b4d」為例,「57」就是服務(wù)器名稱(具體取多少位作為服務(wù)器名稱可以根據(jù)服務(wù)器臺數(shù)決定,取一位為16臺服務(wù)器,因?yàn)槭?6進(jìn)制,有16種可能),兩位:16*16=256能支持256臺服務(wù)器,可以取第三位和第四位作為一級目錄,即「da」為一級目錄。取第五位和第六位為二級目錄,即「fc」為二級目錄,取右邊四位為文件名,即「5b4d」為文件名。然而上述所列舉的位數(shù)選取僅是一種示意性描述,在實(shí)際實(shí)現(xiàn)的時候,可以根據(jù)需要選擇合適的位數(shù),具體選取位數(shù)本申請不作限定。假設(shè)一個文件為10kb,16^2x16^2x16^4/1024/1024/100=40.96tb。例如,一個云服務(wù)器支持128tb的磁盤。實(shí)際可以根據(jù)上傳文件大小進(jìn)行容量規(guī)劃。例如:文件過大比如一個文件為10m,那么只能取右邊三位作為文件名。如果只有單臺服務(wù)器,就可以舍棄前兩位作為服務(wù)器地址,直接從第三位取起,具體選取方式可以根據(jù)實(shí)際需要確定。在根據(jù)上述方法步驟確定完文件的存儲路徑和文件名之后,就可以將該待存儲文件存儲至對應(yīng)的服務(wù)器和對應(yīng)的文件目錄中了。上述的文件存儲路徑可以包括但不限于以下至少之一:服務(wù)器、一級目錄和二級目錄。上述文件信息可以包括但不限于以下至少之一:文件的crc32值、文件的長度、文件的上傳時間。上述預(yù)設(shè)算法可以包括但不限于以下至少之一:base64算法和/或md5算法。在上述各個實(shí)施例中,通過采用特定的算法確定圖片文件的存儲路徑,從而避免了單個服務(wù)器下的圖片文件多大,超過磁盤大小的問題,也解決了單個文件夾下圖片文件過多導(dǎo)致讀寫性能下降的問題,使得圖片文件的分布更為均勻。本發(fā)明提出的一種圖片文件存儲方法、設(shè)備,通過獲取待存儲圖片文件的文件信息,并基于文件信息按照預(yù)設(shè)算法,計算得到待存儲圖片文件的文件存儲路徑,從而避免了現(xiàn)有的按照上傳日期存儲圖片文件而導(dǎo)致的文件分布不均,服務(wù)器性能受到影響的技術(shù)問題,達(dá)到了均勻存儲圖片文件,保證服務(wù)器性能的技術(shù)效果。需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端(可以是手機(jī),計算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述的方法。上面結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行了描述,但是本發(fā)明并不局限于上述的具體實(shí)施方式,上述的具體實(shí)施方式僅僅是示意性的,而不是限制性的,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明宗旨和權(quán)利要求所保護(hù)的范圍情況下,還可做出很多形式,這些均屬于本發(fā)明的保護(hù)之內(nèi)。當(dāng)前第1頁12當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1