欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種文件排重方法和裝置與流程

文檔序號:11155469閱讀:302來源:國知局
一種文件排重方法和裝置與制造工藝

本發(fā)明涉及存儲技術(shù)領(lǐng)域,特別涉及一種文件排重方法和裝置。



背景技術(shù):

在存儲設(shè)備中,文件數(shù)據(jù),特別是一些音視頻文件,占用存儲空間特別多。如果多個用戶共用一個存儲空間時,經(jīng)常會出現(xiàn)不同用戶存儲相同內(nèi)容的文件的情況,導(dǎo)致文件的重復(fù)存儲,占用不必要的存儲空間,造成存儲空間浪費(fèi)。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明的目的在于提供一種文件排重方法和裝置,能夠避免文件的重復(fù)存放,減少存儲資源浪費(fèi)。

為了達(dá)到上述目的,本發(fā)明提供了如下技術(shù)方案:

一種文件排重方法,應(yīng)用于存儲設(shè)備,該方法包括:

獲取待存儲文件,基于待存儲文件的文件內(nèi)容生成待存儲文件的標(biāo)識值;

比較存儲設(shè)備中所有已存儲文件的標(biāo)識值與待存儲文件的標(biāo)識值,如果存在一已存儲文件與待存儲文件具有相同的標(biāo)識值,則生成指向該已存儲文件的鏈接,將該鏈接作為待存儲文件存儲到目標(biāo)文件路徑,否則,將待存儲文件存儲到目標(biāo)文件路徑,并將待存儲文件的標(biāo)識值存儲為待存儲文件的屬性。

一種文件排重裝置,應(yīng)用于存儲設(shè)備,該裝置包括:獲取單元、生成單元、比較單元、處理單元;

所述獲取單元,用于獲取待存儲文件;

所述生成單元,用于基于待存儲文件的文件內(nèi)容生成待存儲文件的標(biāo)識值;

所述比較單元,用于比較存儲設(shè)備中所有已存儲文件的標(biāo)識值與待存儲文件的標(biāo)識值;

所述處理單元,用于如果比較單元判定存儲設(shè)備中存在一已存儲文件與待存儲文件具有相同的標(biāo)識值,則生成指向該已存儲文件的鏈接,將該鏈接作為待存儲文件存儲到目標(biāo)文件路徑,否則,將待存儲文件存儲到目標(biāo)文件路徑,并將待存儲文件的標(biāo)識值存儲為待存儲文件的屬性。

由上面的技術(shù)方案可知,本發(fā)明中,通過將存儲設(shè)備中的已存儲文件的標(biāo)識值與待存儲文件的標(biāo)識值進(jìn)行比較,確定存儲設(shè)備中是否已經(jīng)存儲有與待存儲文件具有相同文件內(nèi)容的已存儲文件,存在則生成指向已存儲文件的鏈接,將該鏈接作為待存儲文件,從而可以使得同一內(nèi)容的文件在存儲設(shè)備中僅存儲一份??梢钥闯?,本發(fā)明能夠避免文件的重復(fù)存放,減少存儲資源浪費(fèi)。

附圖說明

圖1是本發(fā)明實(shí)施例文件排重方法的流程圖;

圖2是本發(fā)明實(shí)施例文件排重裝置的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,下面結(jié)合附圖并據(jù)實(shí)施例,對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。

參見圖1,圖1是本發(fā)明實(shí)施例文件排重方法的流程圖,該方法應(yīng)用于存儲設(shè)備,主要包括以下步驟:

步驟101、獲取待存儲文件,基于待存儲文件的文件內(nèi)容生成待存儲文件的標(biāo)識值。

待存儲文件為用戶上傳的文件,或者其它來源的文件。

在進(jìn)行文件排重時,如果直接進(jìn)行文件內(nèi)容對比來確定是否是相同內(nèi)容的文件,由于文件內(nèi)容的數(shù)據(jù)量較大,排重效率會非常低下,因此本實(shí)施例中通過文件的標(biāo)識值進(jìn)行排重。

文件的標(biāo)識值可以是任何可以標(biāo)識文件內(nèi)容的特征值,在本實(shí)施例中,采用將基于文件內(nèi)容生成的MD5(Message-Digest Algorithm 5,信息-摘要算法5)值作為文件的標(biāo)識值。

步驟102、比較存儲設(shè)備中所有已存儲文件的標(biāo)識值與待存儲文件的標(biāo)識值,如果存在一已存儲文件與待存儲文件具有相同的標(biāo)識值,則生成指向該已存儲文件的鏈接,將該鏈接作為待存儲文件存儲到目標(biāo)文件路徑,否則,將待存儲文件存儲到目標(biāo)文件路徑,并將待存儲文件的標(biāo)識值存儲為待存儲文件的屬性。

本實(shí)施例中,在將文件存儲到存儲設(shè)備之前,生成文件對應(yīng)的標(biāo)識值(MD5),在將文件存儲到存儲設(shè)備中時,同時將文件的標(biāo)識值存儲為文件的一個屬性。以后查找該文件的標(biāo)識值時,直接通過獲取該文件的屬性的方式獲取該文件的標(biāo)識值。將文件的標(biāo)識值存儲為文件的屬性的方法,一方面可以極大的提高了獲取該文件的標(biāo)識值的效率,另一方面也可以使得文件的標(biāo)識值隨文件的位置變化而遷移,相對于現(xiàn)有技術(shù)將文件的標(biāo)識值(MD5)簡單的記錄在一個系統(tǒng)的配置文件里面的作法,可以避免因系統(tǒng)配置文件壞掉而導(dǎo)致存儲設(shè)備中所有文件的標(biāo)識值(MD5)丟失的情況。

當(dāng)有新的待存儲文件時,可以通過將待存儲文件的標(biāo)識值與存儲設(shè)備中當(dāng)前已存儲的所有文件的標(biāo)識值進(jìn)行比較,確定是否存在與待存儲文件具有相同標(biāo)識值的已存儲文件,如果存在,則說明待存儲文件的文件內(nèi)容在存儲設(shè)備中已經(jīng)存在,不需要再多存儲一份,因此需要執(zhí)行排重操作,如果不存在,則說明待存儲文件的文件內(nèi)容在存儲設(shè)備中尚未存在,可以直接執(zhí)行存儲操作即可。

當(dāng)確定存儲設(shè)備中存在與待存儲文件具有相同標(biāo)識值的已存儲文件后,執(zhí)行的排重操作為:生成指向該已存儲文件的鏈接,將該鏈接作為待存儲文件存儲到目標(biāo)文件路徑。然而,考慮到該已存儲文件所在文件路徑(也即文件目錄)與待存儲文件的目標(biāo)文件路徑相同的情況下,可以直接將該已存儲文件作為待存儲文件,不需要再生成指向該已存儲文件的鏈接。

因此,在本實(shí)施例中,在確定存儲設(shè)備中存在與待存儲文件具有相同標(biāo)識值的已存儲文件之后,生成指向該已存儲文件的鏈接,將該鏈接作為待存儲文件存儲到目標(biāo)文件路徑之前,需要先判斷該已存儲文件所在文件路徑與待存儲文件的目標(biāo)文件路徑是否相同,相同則根據(jù)需求返回上傳成功信息到上傳待存儲文件的設(shè)備,然后結(jié)束本次存儲操作,或者直接結(jié)束本次存儲操作;不同則再執(zhí)行生成指向該已存儲文件的鏈接,將該鏈接作為待存儲文件存儲到目標(biāo)文件路徑的操作,此時還可以根據(jù)需求返回上傳成功信息到上傳待存儲文件的設(shè)備。

另外,在確定存儲設(shè)備中存在與待存儲文件具有相同標(biāo)識值的已存儲文件后,生成指向該已存儲文件的鏈接,將該鏈接作為待存儲文件存儲到目標(biāo)文件路徑時,還需要將待存儲文件的文件名稱設(shè)置作為該鏈接的名稱,從而使得用戶可以將該鏈接看作待存儲文件。

在實(shí)際應(yīng)用中,同一路徑下不允許存儲具有相同文件名稱的多份文件,因此,在執(zhí)行步驟102之前,可以先比較目標(biāo)文件路徑下的所有已存儲文件的文件名稱與待存儲文件的文件名稱,如果目標(biāo)文件路徑下存在一已存儲文件與待存儲文件具有相同的文件名稱,則可以輸出重名提示(與現(xiàn)有技術(shù)相同,提示用戶選擇覆蓋原文件、或不覆蓋原文件而是修改待存儲文件的名稱),若接收到用戶的覆蓋重名文件請求,則刪除該已存儲文件,并繼續(xù)執(zhí)行步驟102的操作,如果接收到用戶在選擇不覆蓋重名文件后輸入的新的文件名稱,則將新的文件名稱作為待存儲文件的文件名稱,并繼續(xù)執(zhí)行步驟102的操作。

以上對本發(fā)明實(shí)施例文件排重方法進(jìn)行了詳細(xì)說明,本發(fā)明還提供了一種文件排重裝置,以下結(jié)合圖2進(jìn)行詳細(xì)說明。

參見圖2,圖2是本發(fā)明實(shí)施例文件排重裝置的結(jié)構(gòu)示意圖,該裝置應(yīng)用于存儲設(shè)備,主要包括:獲取單元201、生成單元202、比較單元203、處理單元204;其中,

獲取單元201,用于獲取待存儲文件;

生成單元202,用于基于待存儲文件的文件內(nèi)容生成待存儲文件的標(biāo)識值;

比較單元203,用于比較存儲設(shè)備中所有已存儲文件的標(biāo)識值與待存儲文件的標(biāo)識值;

處理單元204,用于如果比較單元203判定存儲設(shè)備中存在一已存儲文件與待存儲文件具有相同的標(biāo)識值,則生成指向該已存儲文件的鏈接,將該鏈接作為待存儲文件存儲到目標(biāo)文件路徑,否則,將待存儲文件存儲到目標(biāo)文件路徑,并將待存儲文件的標(biāo)識值存儲為待存儲文件的屬性。

圖2所示裝置中,

所述比較單元203,比較所有已存儲文件的標(biāo)識值與待存儲文件的標(biāo)識值之前,進(jìn)一步用于:比較目標(biāo)路徑下的所有已存儲文件的文件名稱與待存儲文件的文件名稱,如果目標(biāo)路徑下存在一已存儲文件與待存儲文件具有相同的文件名稱,則輸出重名提示,若接收到用戶的覆蓋重名文件請求,則刪除該已存儲文件,并繼續(xù)執(zhí)行比較存儲設(shè)備中所有已存儲文件的標(biāo)識值與待存儲文件的標(biāo)識值的操作,如果接收到用戶在選擇不覆蓋重名文件后輸入的新的文件名稱,則將新的文件名稱作為待存儲文件的文件名稱,并繼續(xù)執(zhí)行比較存儲設(shè)備中所有已存儲文件的標(biāo)識值與待存儲文件的標(biāo)識值的操作。

圖2所示裝置中,

所述處理單元204,在比較單元203確定存儲設(shè)備中存在一已存儲文件與待存儲文件的標(biāo)識值相同之后,生成指向該已存儲文件的鏈接,將該鏈接作為待存儲文件存儲到目標(biāo)文件路徑之前,進(jìn)一步用于:

判斷該已存儲文件所在的文件路徑與待存儲文件的目標(biāo)文件路徑是否相同,如果相同,則結(jié)束本次存儲操作,否則,生成指向該已存儲文件的鏈接,將該鏈接作為待存儲文件存儲到目標(biāo)文件路徑。

圖2所示裝置中,

所述待存儲文件為用戶上傳的文件;

所述處理單元204,結(jié)束本次存儲操作之前,進(jìn)一步用于:輸出上傳成功信息;

所述處理單元204,生成指向該已存儲文件的鏈接,將該鏈接作為待存儲文件存儲到目標(biāo)文件路徑之后,進(jìn)一步用于:輸出上傳成功信息。

圖2所示裝置中,

所述處理單元204,將該鏈接作為待存儲文件存儲到目標(biāo)文件路徑時,進(jìn)一步將待存儲文件的文件名稱作為該鏈接的名稱。

以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
锦州市| 曲麻莱县| 潞城市| 左云县| 枣阳市| 县级市| 尖扎县| 吉木萨尔县| 乌审旗| 普格县| 阿拉善盟| 陵川县| 东港市| 连州市| 福泉市| 越西县| 韶山市| 阿荣旗| 桂平市| 遂昌县| 化州市| 武安市| 邳州市| 社旗县| 固阳县| 和平县| 东宁县| 永和县| 马公市| 南昌市| 绥宁县| 平泉县| 乐陵市| 龙岩市| 通山县| 莱西市| 达日县| 克什克腾旗| 阿荣旗| 海晏县| 滦南县|