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

基于分離存儲的文件信息存儲方法和文件信息讀寫方法

文檔序號:6625418閱讀:238來源:國知局
基于分離存儲的文件信息存儲方法和文件信息讀寫方法
【專利摘要】本發(fā)明提供一種基于分離存儲的文件信息存儲方法和文件信息存儲方法,所述文件信息存儲方法包括以下步驟:檢測記錄步驟,檢測文件中是否存在元數(shù)據(jù)存放地址的記錄,否則跳至新建記錄步驟,是則在記錄有效時訪問并讀回元數(shù)據(jù)和抽取數(shù)據(jù);更新元數(shù)據(jù)判斷步驟,判斷元數(shù)據(jù)文件中的內(nèi)容是否發(fā)生改變,是則更新元數(shù)據(jù)文件后跳轉(zhuǎn)至回填文件步驟,否則跳至回填文件步驟;回填文件步驟,回填抽取數(shù)據(jù)至文件中以恢復原文件內(nèi)容;以及,新建記錄步驟,新建一個分離存儲的元數(shù)據(jù)存放地址的記錄,在原文件中分出一段空間以存放該元數(shù)據(jù)存放地址,并將抽取數(shù)據(jù)與元數(shù)據(jù)一同分離存放至元數(shù)據(jù)文件。本發(fā)明將元數(shù)據(jù)分離存儲,由文件維護自己的元數(shù)據(jù)存放記錄。
【專利說明】基于分離存儲的文件信息存儲方法和文件信息讀寫方法

【技術領域】
[0001]本發(fā)明涉及一種文件信息存儲方法,尤其涉及一種基于分離存儲的文件信息存儲方法,并涉及其文件信息讀寫方法。

【背景技術】
[0002]通用文件系統(tǒng)下的文件存儲方法會將文件內(nèi)容與元數(shù)據(jù)存放在同一文件系統(tǒng)中。其中元數(shù)據(jù)主要分為兩大部分:文件系統(tǒng)維護的元數(shù)據(jù)以及由文件本身維護的特定文件類型的元數(shù)據(jù),文件系統(tǒng)維護的元數(shù)據(jù)(如文件大小,文件存放起始扇區(qū)號等)會與文件內(nèi)容分別存放,這一部分由文件系統(tǒng)集中管理,訪問文件時,會首先訪問文件系統(tǒng)維護的元數(shù)據(jù)塊,通過這些數(shù)據(jù)塊找到文件內(nèi)容所在的扇區(qū),從而操作文件。另一部分由文件本身所維護的元數(shù)據(jù)會根據(jù)文件類型的不同,存放的內(nèi)容以及方式也都會有所不同,但通常都是嵌入到文件內(nèi)容本身,與文件作為一個整體存放在磁盤上。處理這類元數(shù)據(jù)時會由特定的應用程序解析從而做出相應的處理,如Pdf文件會將書簽,文本所屬語言,水平或垂直模式書寫等信息嵌入文件中,由Pdf閱讀器讀取之后進行相應處理。
[0003]然而隨著各種新興的技術產(chǎn)生,這種傳統(tǒng)的文件存儲方式已經(jīng)不能滿足特定的高級文件管理功能了,某些情況下需要在文件外部擴展更多的元數(shù)據(jù)來描述文件。如在安全領域為了檢測文件是否被非法訪問,需要引入文件被訪問次數(shù)等記錄來達到目的,一般通過拓展元數(shù)據(jù)的方式來實現(xiàn)。
[0004]目前拓展元數(shù)據(jù)的方式主要有三種,一種是利用文件系統(tǒng)提供的接口,將擴展的元數(shù)據(jù)交給文件系統(tǒng)管理,這種方法的缺點是對擴展的元數(shù)據(jù)大小有明確限制,只能處理少量的數(shù)據(jù),在元數(shù)據(jù)量較大的情況下無法使用。第二種方式是將擴展的元數(shù)據(jù)存到指定的磁盤空間(如數(shù)據(jù)庫),同時建立一個文件與相應擴展元數(shù)據(jù)的對應關系,由一種數(shù)據(jù)結(jié)構(gòu)記錄來維護這種對應關系,此方式的缺點是處理不夠靈活,需要維護文件對應關系,并且在處理大量文件時,對應記錄的查找會浪費大量時間。第三種方式是寫在文件本身,同時修改文件的處理邏輯,比如某些透明加密軟件需要將文件擴大以容納額外加密信息,然后通過修改文件系統(tǒng)調(diào)用以隱藏該部分額外占用的空間。該方法需要對不同文件系統(tǒng)進行針對性修改,而且對于非開放的文件系統(tǒng)容易出錯。


【發(fā)明內(nèi)容】

[0005]本發(fā)明所要解決的技術問題是需要針對以上問題,本發(fā)明提出一種將元數(shù)據(jù)分離存儲,由文件維護自己的元數(shù)據(jù)存放記錄的基于分離存儲的文件信息存儲方法,該文件信息存儲方法不需要修改文件系統(tǒng)的行為和數(shù)據(jù)結(jié)構(gòu),從而達到透明的管理以及使用元數(shù)據(jù)的作用,并進一步提出相應的基于分離存儲的文件讀寫方法。
[0006]對此,本發(fā)明提供一種基于分離存儲的文件信息存儲方法,包括以下步驟:
檢測記錄步驟,在打開文件時,首先檢測該文件中是否存在元數(shù)據(jù)存放地址的記錄,如果不存在則直接跳轉(zhuǎn)至新建記錄步驟;如果存在則首先判斷其是否是有效的記錄,當記錄有效時則根據(jù)記錄訪問并讀回元數(shù)據(jù)和抽取數(shù)據(jù);
更新元數(shù)據(jù)判斷步驟,判斷元數(shù)據(jù)文件中的內(nèi)容是否發(fā)生改變,當訪問操作涉及抽取數(shù)據(jù)的內(nèi)容改變時,則更新元數(shù)據(jù)文件中備份的抽取數(shù)據(jù)后跳轉(zhuǎn)至回填文件步驟;當訪問操作涉及元數(shù)據(jù)的內(nèi)容改變時,則更新元數(shù)據(jù)文件中備份的元數(shù)據(jù)后跳轉(zhuǎn)至回填文件步驟;當元數(shù)據(jù)文件中的內(nèi)容沒有發(fā)生改變時,則直接跳轉(zhuǎn)至回填文件步驟;
回填文件步驟,回填抽取數(shù)據(jù)至文件中以恢復原文件內(nèi)容,然后訪問原文件;
以及,新建記錄步驟,新建一個分離存儲的元數(shù)據(jù)存放地址的記錄,在原文件中分出一段空間以存放該記錄的元數(shù)據(jù)存放地址的信息,所述一段空間為抽離區(qū),并將被抽取的抽取數(shù)據(jù)與元數(shù)據(jù)一同分離存放至元數(shù)據(jù)文件中,然后訪問原文件;
其中,所述原文件的抽離區(qū)用于存放元數(shù)據(jù)存放地址的信息;所述抽離區(qū)原本的原文件數(shù)據(jù)被抽取出來,得到抽取數(shù)據(jù);所述抽取數(shù)據(jù)與元數(shù)據(jù)一起存放在元數(shù)據(jù)文件中。
[0007]本發(fā)明在原文件中的任意位置騰出一段空間作為抽離區(qū),比如說在原文件開始的部分騰出一個抽離區(qū),該抽離區(qū)用來記錄元數(shù)據(jù)存放地址的信息,從而能夠找到對應的元數(shù)據(jù)記錄;同時為了做到不改變原文件的內(nèi)容,本發(fā)明將原文件騰出的抽離區(qū)中的數(shù)據(jù)部分抽取出來,作為元數(shù)據(jù)的一部分存放于元數(shù)據(jù)文件中,以確保原文件的完整性;對文件進行操作時,通過讀取文件中的元數(shù)據(jù)存放地址記錄,找到元數(shù)據(jù)及抽取數(shù)據(jù),將抽取數(shù)據(jù)填充到原文件的抽離區(qū)以獲得完整文件內(nèi)容,同時還能夠?qū)Λ@得的元數(shù)據(jù)進行操作。
[0008]本發(fā)明解決了現(xiàn)有技術中需要拓展元數(shù)據(jù)的情況下,元數(shù)據(jù)與文件關系記錄處理所造成的系統(tǒng)開銷過大和效率低下等問題,同時,本發(fā)明還能夠做到不改變文件系統(tǒng)的現(xiàn)有行為和數(shù)據(jù)結(jié)構(gòu),文件操作對文件系統(tǒng)透明的效果,從而普遍適用于各類文件系統(tǒng)。
[0009]本發(fā)明的進一步改進在于,所述元數(shù)據(jù)存放地址的記錄中還包含附加信息,在檢測記錄步驟中,當記錄有效時,需要先提取并處理附加信息以獲得完整的地址信息,然后再根據(jù)記錄訪問并讀回元數(shù)據(jù)和抽取數(shù)據(jù),所述附加信息包括權限、身份認證、編解碼算法和有效性驗證中至少一種。
[0010]本發(fā)明的進一步改進在于,當所述元數(shù)據(jù)存放地址的記錄以獨立文件的形式存放于文件系統(tǒng)中,則該元數(shù)據(jù)存放地址以文件的絕對路徑的形式來實現(xiàn);當所述元數(shù)據(jù)存放地址的記錄存放在數(shù)據(jù)庫中,則該元數(shù)據(jù)存放地址以數(shù)據(jù)庫的記錄鍵值來實現(xiàn);當所述元數(shù)據(jù)存放地址的記錄存放在網(wǎng)上或云端時,則該元數(shù)據(jù)存放地址以一個URL或者自定義的尋址結(jié)構(gòu)來實現(xiàn)。
[0011]本發(fā)明的進一步改進在于,所述元數(shù)據(jù)用于記錄訪問信息、記錄保密信息和原文件本身的部分數(shù)據(jù)中至少一種。
[0012]本發(fā)明的進一步改進在于,所述元數(shù)據(jù)用于保存訪問次數(shù)、上一次訪問對象以及文件的data內(nèi)容,所述文件的data內(nèi)容隨機拆分成隨機大小的數(shù)據(jù)塊,并將拆分位置P和拆分長度L存入元數(shù)據(jù)的信息記錄中。
[0013]本發(fā)明的進一步改進在于,在原文件中,將拆分位置數(shù)據(jù)清零或用垃圾數(shù)據(jù)填充,并將包括元數(shù)據(jù)文件路徑和文件訪問次數(shù)的安全信息存入至原文件的起始位置,將剩余的有效數(shù)據(jù)進行加密拆分。
[0014]本發(fā)明的元數(shù)據(jù)存放地址記錄的結(jié)構(gòu)和形式取決于該元數(shù)據(jù)記錄的實際存放方式,當元數(shù)據(jù)存放地址的記錄以獨立文件的形式存放于文件系統(tǒng)中的話,那么該元數(shù)據(jù)存放地址可以是文件的絕對路徑的形式;如果是存放在數(shù)據(jù)庫中的話,該元數(shù)據(jù)存放地址可以是數(shù)據(jù)庫的記錄鍵值;如果是存放在網(wǎng)上或云端的話,該元數(shù)據(jù)存放地址可以是一個URL或者是自定義的某種尋址結(jié)構(gòu)。除了元數(shù)據(jù)存放地址本身外,該元數(shù)據(jù)存放地址的記錄還可以包含其他和讀取元數(shù)據(jù)記錄相關的信息,比如權限、身份認證、編解碼算法和有效性驗證等等。由于該元數(shù)據(jù)存放地址的記錄所占據(jù)的原文件數(shù)據(jù)內(nèi)容會被抽取出來并同元數(shù)據(jù)一同存放,因此原文件中的存放地址記錄的大小和內(nèi)容可以非常靈活,能夠很好地適應各種情況。
[0015]另外具體元數(shù)據(jù)的內(nèi)容也非常靈活,可以用于記錄訪問信息、記錄加密信息以及文件本身的部分數(shù)據(jù)。該分離存儲的元數(shù)據(jù)文件的空間可以根據(jù)需求用來存放對原文件元數(shù)據(jù)記錄的任意擴充,而無需改變原文件的存放、訪問和處理方式。
[0016]在一種基于文件拆分的透明加密系統(tǒng)中使用了本發(fā)明,元數(shù)據(jù)文件中不僅保存了如訪問次數(shù)和上一次訪問對象等描述文件的信息,還將文件的data內(nèi)容隨機拆分成隨機大小的塊,并記錄拆分位置P和拆分長度L存入分離存儲的元數(shù)據(jù)記錄中。
[0017]分離存儲的元數(shù)據(jù)記錄以文件的形式存放在文件系統(tǒng)中,因此原文件中的元數(shù)據(jù)存放地址記錄就是該元數(shù)據(jù)文件的路徑及相關訪問信息,具體到這種實現(xiàn)方式下,原文件的更名和移動等操作就不會影響到元數(shù)據(jù)存放地址信息;當文件發(fā)生其他變化時,需要根據(jù)元數(shù)據(jù)描述的內(nèi)容,決定是否需要更新元數(shù)據(jù)。
[0018]原文件中,拆分位置數(shù)據(jù)清零或用垃圾數(shù)據(jù)填充,并將元數(shù)據(jù)文件路徑和文件訪問次數(shù)等安全信息存入原文件起始位置或其他索引位置,將剩余有效數(shù)據(jù)進行加密拆分;本發(fā)明通過這種文件信息存儲方法能夠達到拆分加密的效果。所述索引位置為文件索引的所在位置,用于實現(xiàn)元數(shù)據(jù)存儲地址的索引。
[0019]本發(fā)明還提供一種基于分離存儲的文件信息讀寫方法,采用上述的基于分離存儲的文件信息存儲方法進行文件存儲,所述文件信息讀寫方法包括以下讀取步驟:
判斷記錄步驟,當文件打開時,讀取文件中的元數(shù)據(jù)存放地址的記錄,判斷記錄是否有效,如果有效則跳轉(zhuǎn)至安全監(jiān)測判斷步驟,如果無效則新建一個記錄并跳轉(zhuǎn)至信息保存步驟;
安全監(jiān)測判斷步驟,判斷該文件是否進行了加密拆分,若否則直接跳轉(zhuǎn)至信息保存步驟;若是,則訪問文件索引中的文件訪問計數(shù)器與元數(shù)據(jù)文件中的元數(shù)據(jù)文件訪問計數(shù)器,比較兩者是否相同,如果兩者不同則說明文件被非法訪問過,此時進行文件安全處理,并返回打開文件失敗的信息;如果兩者相同,則跳轉(zhuǎn)至信息保存步驟;
以及,信息保存步驟,在內(nèi)存中保存記錄的相應信息,并打開原文件。
[0020]本發(fā)明的進一步改進在于,所述元數(shù)據(jù)文件路徑和元數(shù)據(jù)文件訪問次數(shù)的信息存放于內(nèi)存中維護的一個哈希表里。
[0021]本發(fā)明的進一步改進在于,所述文件信息讀寫方法包括以下寫入步驟:
讀取步驟,開始寫文件操作,讀取內(nèi)存中相應的記錄,判斷是否存在記錄,若否則直接實現(xiàn)寫原文件的操作,若是則跳裝至更新判斷步驟;
更新判斷步驟,判斷是否需要更新記錄,若是則更新記錄信息后跳裝至寫入抽離區(qū)判斷步驟,若否則直接跳裝至寫入抽離區(qū)判斷步驟;
寫入抽離區(qū)判斷步驟,判斷是否需要將更新記錄寫入原文件的抽離區(qū),若是則修改元數(shù)據(jù)文件后跳轉(zhuǎn)至拆分步驟,若否則直接跳轉(zhuǎn)至拆分步驟;
以及,拆分步驟,拆分要寫入的數(shù)據(jù),并將拆分部分寫入元數(shù)據(jù)文件,實現(xiàn)寫原文件的操作。
[0022]本發(fā)明的進一步改進在于,所述元數(shù)據(jù)文件路徑和元數(shù)據(jù)文件訪問次數(shù)的信息存放于內(nèi)存中維護的一個哈希表里,所述下寫入步驟中,在寫文件時,首先判斷哈希表中是否存在該文件的記錄,如果不存在,則直接放棄處理;如果存在相應記錄,則首先判斷該文件是否是初次被寫入,如果是則需要將哈希表中的元數(shù)據(jù)路徑和元數(shù)據(jù)文件訪問次數(shù)所組成的文件索引寫入至原文件的抽離區(qū),并將原來需要寫入該抽離區(qū)的原文件數(shù)據(jù)寫入至元數(shù)據(jù)文件中。
[0023]與現(xiàn)有技術相比,本發(fā)明的有益效果在于,通過分離存儲的方式擴展文件的元數(shù)據(jù)存儲空間,通過替換的方式將分離存儲的元數(shù)據(jù)存放地址的記錄信息存放在原文件中,并將其占用的原文件空間中的數(shù)據(jù)抽取出來作為分離存儲的元數(shù)據(jù)文件的一部分進行備份,從而可以完全恢復出原文件所有信息;而且由于本發(fā)明對原文件來講僅僅涉及到其部分內(nèi)容的替換改變,與底層文件系統(tǒng)無關,文件的長度大小、扇區(qū)分配、數(shù)據(jù)結(jié)構(gòu)和訪問管理等等都不受影響,因此適應性非常廣。
[0024]另外,由于分離存儲的元數(shù)據(jù)與原文件分開存放,元數(shù)據(jù)存放地址的記錄可以存放在不同的介質(zhì)或者服務器上,使得可以將元數(shù)據(jù)的訪問同原文件的訪問分別控制起來,擴大了元數(shù)據(jù)的使用范圍,比如可以用于以安全為目的的文件的透明拆分加密。
[0025]本發(fā)明將元數(shù)據(jù)存放地址的記錄等信息直接存放在原文件中,無需進行對應關系的集中維護,一方面可以降低分離存儲關系的維護成本,另一方面也避免了單點失效的問題,而且原文件進行移動和改名等操作也不會導致記錄的更新。與本發(fā)明不同的是,現(xiàn)有技術中用數(shù)據(jù)庫集中維護的話,則原文件的移動和改名很可能就需要修改映射記錄。
[0026]本發(fā)明在極小的操作代價下實現(xiàn)了文件的元數(shù)據(jù)的任意擴充,擴充出來的元數(shù)據(jù)空間可以用于任何目的,沒有空間和結(jié)構(gòu)上的限制,系統(tǒng)額外開銷小;同時,由于沒有修改原文件中由操作系統(tǒng)以及特定文件類型維護的已有元數(shù)據(jù),擴充了分離元數(shù)據(jù)的文件與標準文件對于文件系統(tǒng)來說是完全一樣的,做到了與任意文件系統(tǒng)的兼容。
[0027]分離存儲的元數(shù)據(jù)文件可以批量存放在本地、服務端或者其他介質(zhì),可以提供空間給進行更高級的應用級或系統(tǒng)級的安全管理,或者是其他需要以文件為粒度的額外空間的其他任何目的。

【專利附圖】

【附圖說明】
[0028]圖1是本發(fā)明一種實施例的元數(shù)據(jù)存放示意圖;
圖2是本發(fā)明一種實施例的工作流程示意圖;
圖3是本發(fā)明另一種實施例的工作流程示意圖;
圖4是本發(fā)明再一種實施例的工作流程示意圖。

【具體實施方式】
[0029]下面結(jié)合附圖,對本發(fā)明的較優(yōu)的實施例作進一步的詳細說明。
[0030]實施例1: 如圖1和圖2所示,本例提供一種基于分離存儲的文件信息存儲方法,包括以下步驟:檢測記錄步驟,在打開文件時,首先檢測該文件中是否存在元數(shù)據(jù)存放地址的記錄,如果不存在則直接跳轉(zhuǎn)至新建記錄步驟;如果存在則首先判斷其是否是有效的記錄,當記錄有效時則根據(jù)記錄訪問并讀回元數(shù)據(jù)和抽取數(shù)據(jù);
更新元數(shù)據(jù)判斷步驟,判斷元數(shù)據(jù)文件中的內(nèi)容是否發(fā)生改變,當訪問操作涉及抽取數(shù)據(jù)的內(nèi)容改變時,則更新元數(shù)據(jù)文件中備份的抽取數(shù)據(jù)后跳轉(zhuǎn)至回填文件步驟;當訪問操作涉及元數(shù)據(jù)的內(nèi)容改變時,則更新元數(shù)據(jù)文件中備份的元數(shù)據(jù)后跳轉(zhuǎn)至回填文件步驟;當元數(shù)據(jù)文件中的內(nèi)容沒有發(fā)生改變時,則直接跳轉(zhuǎn)至回填文件步驟;
回填文件步驟,回填抽取數(shù)據(jù)至文件中以恢復原文件內(nèi)容,然后訪問原文件;
以及,新建記錄步驟,新建一個分離存儲的元數(shù)據(jù)存放地址的記錄,在原文件中分出一段空間以存放該記錄的元數(shù)據(jù)存放地址的信息,所述一段空間為抽離區(qū),并將被抽取的抽取數(shù)據(jù)與元數(shù)據(jù)一同分離存放至元數(shù)據(jù)文件中,然后訪問原文件;
其中,所述原文件的抽離區(qū)用于存放元數(shù)據(jù)存放地址的信息;所述抽離區(qū)原本的原文件數(shù)據(jù)被抽取出來,得到抽取數(shù)據(jù);所述抽取數(shù)據(jù)與元數(shù)據(jù)一起存放在元數(shù)據(jù)文件中。
[0031]如圖1所示,本例在原文件中的任意位置騰出一段空間作為抽離區(qū),比如在原文件開始的部分騰出一個抽離區(qū),該抽離區(qū)用來記錄元數(shù)據(jù)存放地址的信息,從而能夠找到對應的元數(shù)據(jù)記錄;同時為了做到不改變原文件的內(nèi)容,本例將原文件騰出的抽離區(qū)中的數(shù)據(jù)部分抽取出來,作為元數(shù)據(jù)的一部分存放于元數(shù)據(jù)文件中,以確保原文件的完整性;對文件進行操作時,通過讀取文件中的元數(shù)據(jù)存放地址記錄,找到元數(shù)據(jù)及抽取數(shù)據(jù),將抽取數(shù)據(jù)填充到原文件的抽離區(qū)以獲得完整文件內(nèi)容,同時還能夠?qū)Λ@得的元數(shù)據(jù)進行操作。
[0032]本例解決了現(xiàn)有技術中需要拓展元數(shù)據(jù)的情況下,元數(shù)據(jù)與文件關系記錄處理所造成的系統(tǒng)開銷過大和效率低下等問題,同時,本例還能夠做到不改變文件系統(tǒng)的現(xiàn)有行為和數(shù)據(jù)結(jié)構(gòu),文件操作對文件系統(tǒng)透明的效果,從而普遍適用于各類文件系統(tǒng)。
[0033]現(xiàn)有技術中,提出了一種元數(shù)據(jù)屬性的混合索引方法,這種現(xiàn)有的混合索引方法依據(jù)各元數(shù)據(jù)屬性被使用頻率、創(chuàng)建時間和最近被訪問時間,將元數(shù)據(jù)屬性劃分為高頻元數(shù)據(jù)屬性和低頻元數(shù)據(jù)屬性,針對高頻和低頻元數(shù)據(jù)屬性的特性,分別使用KD-tree、B-tree樹和人工免疫算法建立索引,并給出了新型元數(shù)據(jù)管理系統(tǒng)的結(jié)構(gòu),介紹了主要模塊的功能和流程,但是這種現(xiàn)有技術在通用文件系統(tǒng)下,這種設計架構(gòu)繁瑣,開銷過大,同時當系統(tǒng)中需要處理的文件較少時,這種優(yōu)化算法顯得并不高效。
[0034]現(xiàn)有技術中還有通過多文件驅(qū)動技術改變操作系統(tǒng)的數(shù)據(jù)存儲結(jié)構(gòu),使得所有文件的讀取訪問都必須按照新構(gòu)建的過程才能完成;對每一個涉密電子文檔賦予一個唯一的、不可分離的數(shù)據(jù)標識,并以不可分離的方式嵌入到電子文件中;但這種現(xiàn)有技術將拓展的元數(shù)據(jù)寫入文件本身,修改了文件的內(nèi)容,改變了文件的大小,文件在存儲介質(zhì)中的實際大小與系統(tǒng)記錄不一致,需要額外的監(jiān)控和轉(zhuǎn)換手段防止該不一致影響文件系統(tǒng)的正常工作;另一方面,由于將元數(shù)據(jù)嵌入文件中,導致元數(shù)據(jù)無法擴展,無法集中管理元數(shù)據(jù),不能用于文件內(nèi)容安全保密等缺點。
[0035]本例所述元數(shù)據(jù)存放地址的記錄中還優(yōu)選包含附加信息,在檢測記錄步驟中,當記錄有效時,需要先提取并處理附加信息以獲得完整的地址信息,然后再根據(jù)記錄訪問并讀回元數(shù)據(jù)和抽取數(shù)據(jù),所述附加信息包括權限、身份認證、編解碼算法和有效性驗證中至少一種。
[0036]本例當所述元數(shù)據(jù)存放地址的記錄以獨立文件的形式存放于文件系統(tǒng)中,則該元數(shù)據(jù)存放地址以文件的絕對路徑的形式來實現(xiàn);當所述元數(shù)據(jù)存放地址的記錄存放在數(shù)據(jù)庫中,則該元數(shù)據(jù)存放地址以數(shù)據(jù)庫的記錄鍵值來實現(xiàn);當所述元數(shù)據(jù)存放地址的記錄存放在網(wǎng)上或云端時,則該元數(shù)據(jù)存放地址以一個URL或者自定義的尋址結(jié)構(gòu)來實現(xiàn)。所述元數(shù)據(jù)用于記錄訪問信息、記錄保密信息和原文件本身的部分數(shù)據(jù)中至少一種。
[0037]本例所述元數(shù)據(jù)用于保存訪問次數(shù)、上一次訪問對象以及文件的data內(nèi)容,所述文件的data內(nèi)容隨機拆分成隨機大小的數(shù)據(jù)塊,并將拆分位置P和拆分長度L存入元數(shù)據(jù)的信息記錄中。
[0038]本例在原文件中,將拆分位置數(shù)據(jù)清零或用垃圾數(shù)據(jù)填充,并將包括元數(shù)據(jù)文件路徑和文件訪問次數(shù)的安全信息存入至原文件的起始位置,將剩余的有效數(shù)據(jù)進行加密拆分。
[0039]本例的元數(shù)據(jù)存放地址記錄的結(jié)構(gòu)和形式取決于該元數(shù)據(jù)記錄的實際存放方式,當元數(shù)據(jù)存放地址的記錄以獨立文件的形式存放于文件系統(tǒng)中的話,那么該元數(shù)據(jù)存放地址可以是文件的絕對路徑的形式;如果是存放在數(shù)據(jù)庫中的話,該元數(shù)據(jù)存放地址可以是數(shù)據(jù)庫的記錄鍵值;如果是存放在網(wǎng)上或云端的話,該元數(shù)據(jù)存放地址可以是一個URL或者是自定義的某種尋址結(jié)構(gòu)。除了元數(shù)據(jù)存放地址本身外,該元數(shù)據(jù)存放地址的記錄還可以包含其他和讀取元數(shù)據(jù)記錄相關的信息,比如權限、身份認證、編解碼算法和有效性驗證等等。由于該元數(shù)據(jù)存放地址的記錄所占據(jù)的原文件數(shù)據(jù)內(nèi)容會被抽取出來并同元數(shù)據(jù)一同存放,因此原文件中的存放地址記錄的大小和內(nèi)容可以非常靈活,能夠很好地適應各種情況。
[0040]另外具體元數(shù)據(jù)的內(nèi)容也非常靈活,可以用于記錄訪問信息、記錄加密信息以及文件本身的部分數(shù)據(jù)。該分離存儲的元數(shù)據(jù)文件的空間可以根據(jù)需求用來存放對原文件元數(shù)據(jù)記錄的任意擴充,而無需改變原文件的存放、訪問和處理方式。
[0041]更為具體的,本例的有益效果在于,通過分離存儲的方式擴展文件的元數(shù)據(jù)存儲空間,通過替換的方式將分離存儲的元數(shù)據(jù)存放地址的記錄信息存放在原文件中,并將其占用的原文件空間中的數(shù)據(jù)抽取出來作為分離存儲的元數(shù)據(jù)文件的一部分進行備份,從而可以完全恢復出原文件所有信息;而且由于本例對原文件來講僅僅涉及到其部分內(nèi)容的替換改變,與底層文件系統(tǒng)無關,文件的長度大小、扇區(qū)分配、數(shù)據(jù)結(jié)構(gòu)和訪問管理等等都不受影響,因此適應性非常廣。
[0042]另外,由于分離存儲的元數(shù)據(jù)與原文件分開存放,元數(shù)據(jù)存放地址的記錄可以存放在不同的介質(zhì)或者服務器上,使得可以將元數(shù)據(jù)的訪問同原文件的訪問分別控制起來,擴大了元數(shù)據(jù)的使用范圍,比如可以用于以安全為目的的文件的透明拆分加密。
[0043]本例將元數(shù)據(jù)存放地址的記錄等信息直接存放在原文件中,無需進行對應關系的集中維護,一方面可以降低分離存儲關系的維護成本,另一方面也避免了單點失效的問題,而且原文件進行移動和改名等操作也不會導致記錄的更新。與本例不同的是,現(xiàn)有技術中用數(shù)據(jù)庫集中維護的話,則原文件的移動和改名很可能就需要修改映射記錄。
[0044]本例在極小的操作代價下實現(xiàn)了文件的元數(shù)據(jù)的任意擴充,擴充出來的元數(shù)據(jù)空間可以用于任何目的,沒有空間和結(jié)構(gòu)上的限制,系統(tǒng)額外開銷小;同時,由于沒有修改原文件中由操作系統(tǒng)以及特定文件類型維護的已有元數(shù)據(jù),擴充了分離元數(shù)據(jù)的文件與標準文件對于文件系統(tǒng)來說是完全一樣的,做到了與任意文件系統(tǒng)的兼容。
[0045]分離存儲的元數(shù)據(jù)文件可以批量存放在本地、服務端或者其他介質(zhì),可以提供空間給進行更高級的應用級或系統(tǒng)級的安全管理,或者是其他需要以文件為粒度的額外空間的其他任何目的。
[0046]實施例2:
如圖3所示,本例還提供一種基于分離存儲的文件信息讀寫方法,本例采用實施例1所述的基于分離存儲的文件信息存儲方法進行文件存儲,所述文件信息讀寫方法包括以下讀取步驟:
判斷記錄步驟,當文件打開時,讀取文件中的元數(shù)據(jù)存放地址的記錄,判斷記錄是否有效,如果有效則跳轉(zhuǎn)至安全監(jiān)測判斷步驟,如果無效則新建一個記錄并跳轉(zhuǎn)至信息保存步驟;
安全監(jiān)測判斷步驟,判斷該文件是否進行了加密拆分,若否則直接跳轉(zhuǎn)至信息保存步驟;若是,則訪問文件索引中的文件訪問計數(shù)器與元數(shù)據(jù)文件中的元數(shù)據(jù)文件訪問計數(shù)器,比較兩者是否相同,如果兩者不同則說明文件被非法訪問過,此時進行文件安全處理,并返回打開文件失敗的信息;如果兩者相同,則跳轉(zhuǎn)至信息保存步驟;
以及,信息保存步驟,在內(nèi)存中保存記錄的相應信息,并打開原文件。
[0047]本例所述元數(shù)據(jù)文件路徑和元數(shù)據(jù)文件訪問次數(shù)的信息存放于內(nèi)存中維護的一個哈希表里。
[0048]在基于文件拆分的透明加密系統(tǒng)中使用了實施例1或?qū)嵤├?所述的文件信息存儲方法,元數(shù)據(jù)文件中不僅保存了如訪問次數(shù),上一次訪問對象等描述文件的信息,還將文件的data內(nèi)容隨機拆分成隨機大小的塊,并記錄拆分位置P和拆分長度L,存入分離存儲的元數(shù)據(jù)記錄中。
[0049]分離存儲的元數(shù)據(jù)記錄以文件的形式存放在文件系統(tǒng)中,因此原文件中的元數(shù)據(jù)存放地址的記錄就是該元數(shù)據(jù)文件的路徑及相關訪問信息。具體到這種實現(xiàn)方式下,原文件的更名和移動等操作就不會影響到元數(shù)據(jù)存放地址信息。當文件發(fā)生其他變化時,需要根據(jù)元數(shù)據(jù)描述的內(nèi)容,決定是否需要更新元數(shù)據(jù)。
[0050]原文件中,拆分位置數(shù)據(jù)清零或用垃圾數(shù)據(jù)填充,并將元數(shù)據(jù)文件路徑,文件訪問次數(shù)等安全信息存入原文件起始位置,將剩余有效數(shù)據(jù)進行加密拆分,本發(fā)明可以通過這種文件存放方式,達到拆分加密的效果。
[0051]實施例3:
如圖4所述,在實施例2的基礎上,本例所述文件信息讀寫方法包括以下寫入步驟:
讀取步驟,開始寫文件操作,讀取內(nèi)存中相應的記錄,判斷是否存在記錄,若否則直接實現(xiàn)寫原文件的操作,若是則跳裝至更新判斷步驟;
更新判斷步驟,判斷是否需要更新記錄,若是則更新記錄信息后跳裝至寫入抽離區(qū)判斷步驟,若否則直接跳裝至寫入抽離區(qū)判斷步驟;
寫入抽離區(qū)判斷步驟,判斷是否需要將更新記錄寫入原文件的抽離區(qū),若是則修改元數(shù)據(jù)文件后跳轉(zhuǎn)至拆分步驟,若否則直接跳轉(zhuǎn)至拆分步驟;
以及,拆分步驟,拆分要寫入的數(shù)據(jù),并將拆分部分寫入元數(shù)據(jù)文件,實現(xiàn)寫原文件的操作。
[0052]本例所述下寫入步驟中,在寫文件時,首先判斷哈希表中是否存在該文件的記錄,如果不存在,則直接放棄處理;如果存在相應記錄,則首先判斷該文件是否是初次被寫入,如果是則需要將哈希表中的元數(shù)據(jù)路徑和元數(shù)據(jù)文件訪問次數(shù)所組成的文件索引寫入至原文件的抽離區(qū),并將原來需要寫入該抽離區(qū)的原文件數(shù)據(jù)寫入至元數(shù)據(jù)文件中。
[0053]以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬【技術領域】的普通技術人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發(fā)明的保護范圍。
【權利要求】
1.一種基于分離存儲的文件信息存儲方法,其特征在于,包括以下步驟: 檢測記錄步驟,在打開文件時,首先檢測該文件中是否存在元數(shù)據(jù)存放地址的記錄,如果不存在則直接跳轉(zhuǎn)至新建記錄步驟;如果存在則首先判斷其是否是有效的記錄,當記錄有效時則根據(jù)記錄訪問并讀回元數(shù)據(jù)和抽取數(shù)據(jù); 更新元數(shù)據(jù)判斷步驟,判斷元數(shù)據(jù)文件中的內(nèi)容是否發(fā)生改變,當訪問操作涉及抽取數(shù)據(jù)的內(nèi)容改變時,則更新元數(shù)據(jù)文件中備份的抽取數(shù)據(jù)后跳轉(zhuǎn)至回填文件步驟;當訪問操作涉及元數(shù)據(jù)的內(nèi)容改變時,則更新元數(shù)據(jù)文件中備份的元數(shù)據(jù)后跳轉(zhuǎn)至回填文件步驟;當元數(shù)據(jù)文件中的內(nèi)容沒有發(fā)生改變時,則直接跳轉(zhuǎn)至回填文件步驟; 回填文件步驟,回填抽取數(shù)據(jù)至文件中以恢復原文件內(nèi)容,然后訪問原文件; 以及,新建記錄步驟,新建一個分離存儲的元數(shù)據(jù)存放地址的記錄,在原文件中分出一段空間以存放該記錄的元數(shù)據(jù)存放地址的信息,所述一段空間為抽離區(qū),并將被抽取的抽取數(shù)據(jù)與元數(shù)據(jù)一同分離存放至元數(shù)據(jù)文件中,然后訪問原文件; 其中,所述原文件的抽離區(qū)用于存放元數(shù)據(jù)存放地址的信息;所述抽離區(qū)原本的原文件數(shù)據(jù)被抽取出來,得到抽取數(shù)據(jù);所述抽取數(shù)據(jù)與元數(shù)據(jù)一起存放在元數(shù)據(jù)文件中。
2.根據(jù)權利要求1所述的基于分離存儲的文件信息存儲方法,其特征在于,所述元數(shù)據(jù)存放地址的記錄中還包含附加信息,在檢測記錄步驟中,當記錄有效時,需要先提取并處理附加信息以獲得完整的地址信息,然后再根據(jù)記錄訪問并讀回元數(shù)據(jù)和抽取數(shù)據(jù),所述附加信息包括權限、身份認證、編解碼算法和有效性驗證中至少一種。
3.根據(jù)權利要求1所述的基于分離存儲的文件信息存儲方法,其特征在于,當所述元數(shù)據(jù)存放地址的記錄以獨立文件的形式存放于文件系統(tǒng)中,則該元數(shù)據(jù)存放地址以文件的絕對路徑的形式來實現(xiàn);當所述元數(shù)據(jù)存放地址的記錄存放在數(shù)據(jù)庫中,則該元數(shù)據(jù)存放地址以數(shù)據(jù)庫的記錄鍵值來實現(xiàn);當所述元數(shù)據(jù)存放地址的記錄存放在網(wǎng)上或云端時,則該元數(shù)據(jù)存放地址以一個URL或者自定義的尋址結(jié)構(gòu)來實現(xiàn)。
4.根據(jù)權利要求1至3任意一項所述的基于分離存儲的文件信息存儲方法,其特征在于,所述元數(shù)據(jù)用于記錄訪問信息、記錄保密信息和原文件本身的部分數(shù)據(jù)中至少一種。
5.根據(jù)權利要求1至3任意一項所述的基于分離存儲的文件信息存儲方法,其特征在于,所述元數(shù)據(jù)用于保存訪問次數(shù)、上一次訪問對象以及文件的data內(nèi)容,所述文件的data內(nèi)容隨機拆分成隨機大小的數(shù)據(jù)塊,并將拆分位置P和拆分長度L存入元數(shù)據(jù)的信息記錄中。
6.根據(jù)權利要求5所述的基于分離存儲的文件信息存儲方法,其特征在于,在原文件中,將拆分位置數(shù)據(jù)清零或用垃圾數(shù)據(jù)填充,并將包括元數(shù)據(jù)文件路徑和文件訪問次數(shù)的安全信息存入至原文件的起始位置,將剩余的有效數(shù)據(jù)進行加密拆分。
7.一種基于分離存儲的文件信息讀寫方法,其特征在于,米用如權利要求1至6任意一項所述的基于分離存儲的文件信息存儲方法進行文件存儲,所述文件信息讀寫方法包括以下讀取步驟: 判斷記錄步驟,當文件打開時,讀取文件中的元數(shù)據(jù)存放地址的記錄,判斷記錄是否有效,如果有效則跳轉(zhuǎn)至安全監(jiān)測判斷步驟,如果無效則新建一個記錄并跳轉(zhuǎn)至信息保存步驟; 安全監(jiān)測判斷步驟,判斷該文件是否進行了加密拆分,若否則直接跳轉(zhuǎn)至信息保存步驟;若是,則訪問文件索引中的文件訪問計數(shù)器與元數(shù)據(jù)文件中的元數(shù)據(jù)文件訪問計數(shù)器,比較兩者是否相同,如果兩者不同則說明文件被非法訪問過,此時進行文件安全處理,并返回打開文件失敗的信息;如果兩者相同,則跳轉(zhuǎn)至信息保存步驟; 以及,信息保存步驟,在內(nèi)存中保存記錄的相應信息,并打開原文件。
8.根據(jù)權利要求7所述的基于分離存儲的文件信息讀寫方法,其特征在于,所述元數(shù)據(jù)文件路徑和元數(shù)據(jù)文件訪問次數(shù)的信息存放于內(nèi)存中維護的一個哈希表里。
9.根據(jù)權利要求8所述的基于分離存儲的文件信息讀寫方法,其特征在于,所述文件信息讀寫方法包括以下寫入步驟: 讀取步驟,開始寫文件操作,讀取內(nèi)存中相應的記錄,判斷是否存在記錄,若否則直接實現(xiàn)寫原文件的操作,若是則跳裝至更新判斷步驟; 更新判斷步驟,判斷是否需要更新記錄,若是則更新記錄信息后跳裝至寫入抽離區(qū)判斷步驟,若否則直接跳裝至寫入抽離區(qū)判斷步驟; 寫入抽離區(qū)判斷步驟,判斷是否需要將更新記錄寫入原文件的抽離區(qū),若是則修改元數(shù)據(jù)文件后跳轉(zhuǎn)至拆分步驟,若否則直接跳轉(zhuǎn)至拆分步驟; 以及,拆分步驟,拆分要寫入的數(shù)據(jù),并將拆分部分寫入元數(shù)據(jù)文件,實現(xiàn)寫原文件的操作。
10.根據(jù)權利要求9所述的基于分離存儲的文件信息讀寫方法,其特征在于,所述元數(shù)據(jù)文件路徑和元數(shù)據(jù)文件訪問次數(shù)的信息存放于內(nèi)存中維護的一個哈希表里,所述下寫入步驟中,在寫文件時,首先判斷哈希表中是否存在該文件的記錄,如果不存在,則直接放棄處理;如果存在相應記錄,則首先判斷該文件是否是初次被寫入,如果是則需要將哈希表中的元數(shù)據(jù)路徑和元數(shù)據(jù)文件訪問次數(shù)所組成的文件索引寫入至原文件的抽離區(qū),并將原來需要寫入該抽離區(qū)的原文件數(shù)據(jù)寫入至元數(shù)據(jù)文件中。
【文檔編號】G06F17/30GK104239438SQ201410437750
【公開日】2014年12月24日 申請日期:2014年8月29日 優(yōu)先權日:2014年8月29日
【發(fā)明者】李大剛, 汪洋, 林信南, 朱曉陽 申請人:北京大學深圳研究生院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宿州市| 天峻县| 会昌县| 福泉市| 闵行区| 县级市| 古浪县| 永泰县| 龙泉市| 徐闻县| 宜章县| 瑞昌市| 镇远县| 油尖旺区| 河西区| 额尔古纳市| 定州市| 西和县| 白银市| 屏东县| 南宁市| 仙桃市| 德令哈市| 刚察县| 姜堰市| 东平县| 邵阳县| 军事| 海安县| 亚东县| 会宁县| 蒲城县| 高平市| 高台县| 宝丰县| 翼城县| 阿鲁科尔沁旗| 诸城市| 定日县| 将乐县| 增城市|