[發(fā)明專(zhuān)利]一種文件濾重儲(chǔ)存方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201810072498.0 | 申請(qǐng)日: | 2018-01-25 |
| 公開(kāi)(公告)號(hào): | CN110109883B | 公開(kāi)(公告)日: | 2023-06-27 |
| 發(fā)明(設(shè)計(jì))人: | 陳明耀 | 申請(qǐng)(專(zhuān)利權(quán))人: | 卓望數(shù)碼技術(shù)(深圳)有限公司 |
| 主分類(lèi)號(hào): | G06F16/172 | 分類(lèi)號(hào): | G06F16/172;G06F16/22 |
| 代理公司: | 深圳市恒和大知識(shí)產(chǎn)權(quán)代理有限公司 44479 | 代理人: | 鄒航 |
| 地址: | 518000 廣東省深圳市南山區(qū)粵海街*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 文件 儲(chǔ)存 方法 裝置 | ||
本發(fā)明公開(kāi)了一種文件濾重儲(chǔ)存方法和裝置。所述方法包括:獲取用戶上傳文件的的文件特征碼和文件指紋信息;根據(jù)文件指紋信息生成相應(yīng)的hash值;根據(jù)生成的hash值,在key?value數(shù)據(jù)庫(kù)中查詢是否存有內(nèi)容相同的文件;如果不存有內(nèi)容相同的文件,則根據(jù)hash值生成相應(yīng)的儲(chǔ)存路徑和文件名稱,并將文件特征碼得到的擴(kuò)展名作為文件的擴(kuò)展名,來(lái)將用戶上傳的文件儲(chǔ)存在key?value數(shù)據(jù)庫(kù)中。本發(fā)明通過(guò)用戶上傳文件的文件指紋信息來(lái)設(shè)置儲(chǔ)存路徑,避免了名稱不同而內(nèi)容相同文件的重復(fù)儲(chǔ)存,節(jié)省了儲(chǔ)存空間;還通過(guò)文件指紋信息來(lái)判斷文件是否相同,避免了將相同名稱但內(nèi)容不同的文件判斷成同一文件,保障了文件數(shù)據(jù)的安全。
技術(shù)領(lǐng)域
本發(fā)明涉及文件儲(chǔ)存技術(shù)領(lǐng)域,特別涉及一種文件濾重儲(chǔ)存方法和裝置。
背景技術(shù)
業(yè)界涉及到文件上傳儲(chǔ)存,一般很少判斷并識(shí)別服務(wù)端是否已經(jīng)存在相同文件;而且文件名通常采用隨機(jī)字符串方式命名,而計(jì)算機(jī)的隨機(jī)數(shù)算法是偽隨機(jī)數(shù),避免不了重復(fù)。
在這種情況下,會(huì)出現(xiàn)不同文件因?yàn)橥桓采w的情況,還會(huì)出現(xiàn)相同文件因不同名而上傳了多份,浪費(fèi)了文件服務(wù)器的系統(tǒng)資源的情況。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明實(shí)施例提供了一種文件濾重儲(chǔ)存方法和裝置。所述技術(shù)方案如下:
一方面,本發(fā)明實(shí)施例提供了一種文件濾重儲(chǔ)存方法,所述方法包括:
獲取用戶上傳文件的文件長(zhǎng)度,并根據(jù)文件長(zhǎng)度獲取上傳文件的文件特征碼和文件指紋信息,所述文件指紋信息是指從文件特征碼開(kāi)始,在文件流內(nèi)間斷獲取的包含頭尾的至少三段文件片段;
根據(jù)文件指紋信息生成相應(yīng)的hash值(即哈希值);
根據(jù)生成的hash值,在key-value數(shù)據(jù)庫(kù)中查詢是否存有內(nèi)容相同的文件;
如果不存有內(nèi)容相同的文件,則根據(jù)hash值生成相應(yīng)的儲(chǔ)存路徑和文件名稱,并將文件特征碼得到的擴(kuò)展名作為文件的擴(kuò)展名,來(lái)將用戶上傳的文件儲(chǔ)存在key-value數(shù)據(jù)庫(kù)中;
如果存有內(nèi)容相同的文件,則將儲(chǔ)用戶上傳的文件過(guò)濾處理。
在本發(fā)明實(shí)施例上述的文件濾重儲(chǔ)存方法中,所述根據(jù)文件指紋信息生成相應(yīng)的hash值,包括:
將指紋信息中的文件片段拼接后hash出32位長(zhǎng)的字符串,來(lái)作為相應(yīng)的hash值。
在本發(fā)明實(shí)施例上述的文件濾重儲(chǔ)存方法中,所述根據(jù)hash值生成相應(yīng)的儲(chǔ)存路徑和文件名稱,并將文件特征碼得到的擴(kuò)展名作為文件的擴(kuò)展名,來(lái)將用戶上傳的文件儲(chǔ)存在key-value數(shù)據(jù)庫(kù)中,包括:
將32位長(zhǎng)的字符串的前28個(gè)字符中每四個(gè)字符串分割成一層儲(chǔ)存目錄,最后4個(gè)字符作為文件名,并用文件特征碼得到的擴(kuò)展名作為文件的擴(kuò)展名,來(lái)將用戶上傳的文件儲(chǔ)存在key-value數(shù)據(jù)庫(kù)中。
在本發(fā)明實(shí)施例上述的文件濾重儲(chǔ)存方法中,所述根據(jù)hash值生成相應(yīng)的儲(chǔ)存路徑,并將文件特征碼作為用戶上傳文件的擴(kuò)展名,來(lái)將用戶上傳的文件儲(chǔ)存在key-value數(shù)據(jù)庫(kù)中,還包括:
將hash值和文件儲(chǔ)存路徑均存入key-value數(shù)據(jù)庫(kù)。
在本發(fā)明實(shí)施例上述的文件濾重儲(chǔ)存方法中,所述方法還包括:所述根據(jù)hash值生成相應(yīng)的儲(chǔ)存路徑,并將文件特征碼作為用戶上傳文件的擴(kuò)展名,來(lái)將用戶上傳的文件儲(chǔ)存在key-value數(shù)據(jù)庫(kù)中,還包括:
將文件儲(chǔ)存路徑與業(yè)務(wù)應(yīng)用建立關(guān)聯(lián)關(guān)系,并保存在key-value數(shù)據(jù)庫(kù)中。
另一方面,本發(fā)明實(shí)施例提供了一種文件濾重儲(chǔ)存裝置,所述裝置包括:
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于卓望數(shù)碼技術(shù)(深圳)有限公司,未經(jīng)卓望數(shù)碼技術(shù)(深圳)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810072498.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 儲(chǔ)存封套、儲(chǔ)存/運(yùn)輸包以及儲(chǔ)存/運(yùn)輸套件
- 儲(chǔ)存物質(zhì)的儲(chǔ)存裝置及儲(chǔ)存物質(zhì)的儲(chǔ)存方法
- 儲(chǔ)存物質(zhì)的儲(chǔ)存裝置及儲(chǔ)存物質(zhì)的儲(chǔ)存方法
- 儲(chǔ)存模塊和儲(chǔ)存設(shè)備
- 儲(chǔ)存物質(zhì)的儲(chǔ)存裝置及儲(chǔ)存方法
- 儲(chǔ)存控制裝置、儲(chǔ)存裝置及其儲(chǔ)存控制方法
- 用于儲(chǔ)存和運(yùn)輸儲(chǔ)存箱的儲(chǔ)存系統(tǒng)
- 儲(chǔ)存裝置及儲(chǔ)存設(shè)備
- 儲(chǔ)存裝置及儲(chǔ)存設(shè)備
- 儲(chǔ)存系統(tǒng)及儲(chǔ)存模塊
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





