一種云存儲(chǔ)數(shù)據(jù)的優(yōu)化管理方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云存儲(chǔ)技術(shù)領(lǐng)域,特別是涉及一種云存儲(chǔ)數(shù)據(jù)的優(yōu)化管理方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著云計(jì)算的普及,數(shù)據(jù)爆炸式的增長(zhǎng),云存儲(chǔ)成為了熱門產(chǎn)品,數(shù)據(jù)管理成為了人們關(guān)注的焦點(diǎn)。通常我們說(shuō)的“云存儲(chǔ)”是指的“云對(duì)象存儲(chǔ)”,用來(lái)存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),各大云計(jì)算廠商都實(shí)現(xiàn)了這一云計(jì)算基礎(chǔ)設(shè)施,以亞馬遜的S3為代表。它將非結(jié)構(gòu)化數(shù)據(jù)抽象成對(duì)象,即一個(gè)文件一個(gè)對(duì)象,基于HTTP協(xié)議提供增刪改查接口,以實(shí)現(xiàn)對(duì)非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和操作。云存儲(chǔ)在互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)應(yīng)用較廣,提升了開(kāi)發(fā)效率和降低了運(yùn)維復(fù)雜度,推動(dòng)了互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)的發(fā)展。
[0003]技術(shù)實(shí)現(xiàn)上,云存儲(chǔ)實(shí)際上是鍵值存儲(chǔ),對(duì)于對(duì)象間的關(guān)系管理較弱;雖然提供了簡(jiǎn)單的對(duì)象層次結(jié)構(gòu)的管理(基于對(duì)象key的字符串路徑),但是效率卻是十分低下;對(duì)象關(guān)系需要應(yīng)用自行管理。
【發(fā)明內(nèi)容】
[0004]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種云存儲(chǔ)數(shù)據(jù)的優(yōu)化管理方法和系統(tǒng),用于解決現(xiàn)有技術(shù)中云對(duì)象存儲(chǔ)效率低、對(duì)象間的關(guān)系管理弱和需要應(yīng)用自行管理的問(wèn)題。
[0005]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種云存儲(chǔ)數(shù)據(jù)的優(yōu)化管理方法,首先,訪問(wèn)云存儲(chǔ)數(shù)據(jù),發(fā)起請(qǐng)求,訪問(wèn)內(nèi)容至少包括上傳文件、下載文件和獲取文件列表信息;其次,判斷訪問(wèn)權(quán)限,若無(wú)訪問(wèn)權(quán)限,則提示錯(cuò)誤信息;若有訪問(wèn)權(quán)限,則將云存儲(chǔ)真實(shí)數(shù)據(jù)的訪問(wèn)地址簽名后發(fā)送;最后,根據(jù)得到的訪問(wèn)地址進(jìn)行數(shù)據(jù)的讀寫,讀寫完畢后匯報(bào)操作結(jié)果。
[0006]于本發(fā)明一實(shí)施方式中,向云存儲(chǔ)上傳文件的步驟包括:查詢對(duì)象是否存在,若不存在,則添加文件元數(shù)據(jù)信息;若存在,則查詢對(duì)象etag是否存在,若對(duì)象etag不存在,則上傳數(shù)據(jù)對(duì)象;若對(duì)象etag存在,則將云存儲(chǔ)數(shù)據(jù)的地址更新。
[0007]于本發(fā)明一實(shí)施方式中,向云存儲(chǔ)下載文件的步驟包括:獲取文件的數(shù)據(jù)下載地址;查詢文件元數(shù)據(jù)是否存在,若存在,返回下載地址;若不存在,則返回報(bào)錯(cuò)信息;最后通過(guò)下載地址下載數(shù)據(jù)。
[0008]于本發(fā)明一實(shí)施方式中,所述應(yīng)用程序向云存儲(chǔ)獲取文件列表的步驟包括:獲取文件列表;遍歷元數(shù)據(jù)列表;返回文件列表信息。
[0009]本發(fā)明還提供一種云存儲(chǔ)數(shù)據(jù)的優(yōu)化管理系統(tǒng),包括應(yīng)用程序模塊、元數(shù)據(jù)管理服務(wù)模塊、數(shù)據(jù)庫(kù)服務(wù)模塊和云存儲(chǔ)模塊;所述數(shù)據(jù)庫(kù)服務(wù)模塊中存儲(chǔ)有元數(shù)據(jù),所述元數(shù)據(jù)管理服務(wù)模塊中存儲(chǔ)有對(duì)于云存儲(chǔ)的訪問(wèn)控制數(shù)據(jù);所述應(yīng)用程序模塊與所述元數(shù)據(jù)管理服務(wù)模塊之間基于HTTP協(xié)議進(jìn)行控制流的雙向通信,所述應(yīng)用程序模塊與所述云存儲(chǔ)模塊之間基于HTTP協(xié)議進(jìn)行數(shù)據(jù)流的雙向通信,所述元數(shù)據(jù)管理服務(wù)模塊基于HTTP協(xié)議向所述云存儲(chǔ)模塊發(fā)送控制流,所述元數(shù)據(jù)管理服務(wù)模塊遍歷所述數(shù)據(jù)庫(kù)服務(wù)模塊獲取文件列表。
[0010]于本發(fā)明一實(shí)施方式中,所述應(yīng)用程序模塊還用于在訪問(wèn)所述云存儲(chǔ)數(shù)據(jù)模塊時(shí),向所述元數(shù)據(jù)管理服務(wù)模塊發(fā)起請(qǐng)求;所述元數(shù)據(jù)管理服務(wù)模塊還用于在所述應(yīng)用程序模塊獲得訪問(wèn)權(quán)限時(shí),將所述云存儲(chǔ)塊內(nèi)真實(shí)數(shù)據(jù)的訪問(wèn)地址簽名后發(fā)送給所述應(yīng)用程序模塊;所述應(yīng)用程序模塊還用于根據(jù)得到的訪問(wèn)地址進(jìn)行數(shù)據(jù)的讀寫,讀寫完畢后再向所述元數(shù)據(jù)管理服務(wù)匯報(bào)操作結(jié)果。
[0011 ] 于本發(fā)明一實(shí)施方式中,所述應(yīng)用程序模塊還用于在所述應(yīng)用程序模塊向所述云存儲(chǔ)模塊上傳文件時(shí),向所述元數(shù)據(jù)管理服務(wù)模塊查詢對(duì)象是否存在;所述應(yīng)用程序模塊還用于在對(duì)象不存在時(shí),向所述元數(shù)據(jù)管理服務(wù)模塊添加文件元數(shù)據(jù)信息;所述應(yīng)用程序模塊還用于在對(duì)象存在時(shí),向所述元數(shù)據(jù)管理服務(wù)模塊查詢對(duì)象etag是否存在;所述應(yīng)用程序模塊還用于在對(duì)象etag不存在時(shí),向所述云存儲(chǔ)模塊上傳數(shù)據(jù)對(duì)象;所述應(yīng)用程序模塊還用于在對(duì)象etag存在時(shí),將所述云存儲(chǔ)模塊的數(shù)據(jù)地址更新到所述元數(shù)據(jù)管理服務(wù)模塊中。
[0012]于本發(fā)明一實(shí)施方式中,所述應(yīng)用程序模塊還用于在向所述云存儲(chǔ)模塊下載文件時(shí),向所述元數(shù)據(jù)管理服務(wù)模塊獲取文件的數(shù)據(jù)下載地址,以及向所述元數(shù)據(jù)管理服務(wù)模塊查詢文件元數(shù)據(jù)是否存在;所述元數(shù)據(jù)管理服務(wù)模塊還用于在所述文件元數(shù)據(jù)存在時(shí),向所述應(yīng)用程序模塊返回下載地址,所述應(yīng)用程序模塊還用于通過(guò)所述下載地址向所述云存儲(chǔ)模塊下載數(shù)據(jù);所述元數(shù)據(jù)管理服務(wù)模塊還用于在所述文件元數(shù)據(jù)不存在時(shí)返回報(bào)錯(cuò)信息;
[0013]于本發(fā)明一實(shí)施方式中,所述應(yīng)用程序模塊還用于在向所述云存儲(chǔ)模塊獲取文件列表時(shí),向所述元數(shù)據(jù)管理服務(wù)模塊獲取文件列表;所述元數(shù)據(jù)管理服務(wù)模塊還用于遍歷所述數(shù)據(jù)庫(kù)服務(wù)模塊中的元數(shù)據(jù)列表以及返回文件列表信息給所述應(yīng)用程序模塊。
[0014]于本發(fā)明一實(shí)施方式中,所述應(yīng)用程序模塊包括備份管理單元和文件管理單元。
[0015]如上所述,本發(fā)明的一種云存儲(chǔ)數(shù)據(jù)的優(yōu)化管理方法和系統(tǒng),具有以下有益效果:
[0016]1、通過(guò)實(shí)現(xiàn)元數(shù)據(jù)服務(wù)管理云對(duì)象存儲(chǔ)數(shù)據(jù)的元數(shù)據(jù),管理數(shù)據(jù)之間的關(guān)系,以加速云對(duì)象的列表獲??;
[0017]2、通過(guò)將數(shù)據(jù)存儲(chǔ)與元數(shù)據(jù)分離以加強(qiáng)對(duì)數(shù)據(jù)的控制能力和提高安全性;
[0018]3、通過(guò)etag來(lái)做對(duì)象級(jí)重刪以提高存儲(chǔ)效率。
【附圖說(shuō)明】
[0019]圖1顯示為本發(fā)明一種云存儲(chǔ)數(shù)據(jù)的優(yōu)化管理系統(tǒng)于一實(shí)施例中的總體架構(gòu)示意圖。
[0020]圖2顯示為本發(fā)明一種云存儲(chǔ)數(shù)據(jù)的優(yōu)化管理方法于一實(shí)施例中的流程圖。
[0021]圖3顯示為本發(fā)明一種云存儲(chǔ)數(shù)據(jù)的優(yōu)化管理方法中上傳文件于一實(shí)施例中的流程圖。
[0022]圖4顯示為本發(fā)明一種云存儲(chǔ)數(shù)據(jù)的優(yōu)化管理方法中下載文件于一實(shí)施例中的流程圖。
[0023]圖5顯示為本發(fā)明一種云存儲(chǔ)數(shù)據(jù)的優(yōu)化管理方法中獲取文件列表于一實(shí)施例中的流程圖。
[0024]元件標(biāo)號(hào)說(shuō)明
[0025]I應(yīng)用程序模塊
[0026]2元數(shù)據(jù)管理服務(wù)模塊
[0027]3數(shù)據(jù)庫(kù)服務(wù)模塊
[0028]4云存儲(chǔ)模塊
[0029]SI ?S6步驟
[0030]Sll ?S15步驟
[0031]S11’ ?S15’步驟
[0032]S11,,?S13”步驟
【具體實(shí)施方式】
[0033]以下通過(guò)特定的具體實(shí)例說(shuō)明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說(shuō)明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過(guò)另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說(shuō)明書中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒(méi)有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。需說(shuō)明的是,在不沖突的情況下,以下實(shí)施例及實(shí)施例中的特征可以相互組合。
[0034]需要說(shuō)明的是,以下實(shí)施例中所提供的圖示僅以示意方式說(shuō)明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0035]本發(fā)明中需要部署數(shù)據(jù)庫(kù)節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn),數(shù)據(jù)庫(kù)節(jié)點(diǎn)中部署關(guān)系型數(shù)據(jù)庫(kù),計(jì)算節(jié)點(diǎn)中部署元數(shù)據(jù)管理服務(wù)。部署的物理位置,可以是企業(yè)內(nèi)部的虛擬化平臺(tái)或者物理機(jī),也可以是公有云計(jì)算平臺(tái)的彈性計(jì)算或者數(shù)據(jù)庫(kù)服務(wù)。在實(shí)施過(guò)程中,還需要第三方云存儲(chǔ)的賬號(hào),如AccessID,AccessKey,用于對(duì)第三方云存儲(chǔ)的管理。
[0036]系統(tǒng)的部署包括具體以下步驟:部署一臺(tái)物理機(jī)或虛擬機(jī)或云主機(jī),安裝元數(shù)據(jù)管理服務(wù);部署一臺(tái)物理機(jī)或虛擬機(jī)或云主機(jī),安裝關(guān)系型數(shù)據(jù)庫(kù);在元數(shù)據(jù)管理服務(wù)配置數(shù)據(jù)庫(kù)訪問(wèn)地址;在元數(shù)據(jù)管理服務(wù)配置第三方云存儲(chǔ)賬號(hào)AccessID/AccessKey。
[0037]所指元數(shù)據(jù)包括:對(duì)象ID (全局唯一標(biāo)識(shí)),對(duì)象名稱,對(duì)象類型,云存儲(chǔ)類型,云存儲(chǔ)名稱,云存儲(chǔ)服務(wù)訪問(wèn)地址,云存儲(chǔ)訪問(wèn)AccessID,云儲(chǔ)存訪問(wèn)AccessKey,對(duì)象在云存儲(chǔ)中的路徑,對(duì)象大小,etag (對(duì)象的hash值:哈希值是通過(guò)哈希算法對(duì)內(nèi)存地址值進(jìn)行計(jì)算得到的一個(gè)整數(shù)值,可以理解為一個(gè)數(shù)字標(biāo)識(shí)),對(duì)象的狀態(tài),對(duì)象創(chuàng)建時(shí)間,對(duì)象最后修改時(shí)間,父對(duì)象ID等。
[0038]請(qǐng)參閱圖1,顯示為本發(fā)明一種云存儲(chǔ)數(shù)據(jù)的優(yōu)化管理系統(tǒng)于一實(shí)施例中的總體架構(gòu)示意圖,包括應(yīng)用程序模塊1、元數(shù)據(jù)管理服務(wù)模塊2、數(shù)據(jù)庫(kù)服務(wù)模塊3和云存儲(chǔ)模塊4 ;所述應(yīng)用程序模塊I包括備份管理單元和文件管理單元;所述數(shù)據(jù)庫(kù)服務(wù)模塊3中存儲(chǔ)有元數(shù)據(jù),所述元數(shù)據(jù)管理服務(wù)模塊2中存儲(chǔ)有對(duì)于云存儲(chǔ)模塊4的訪問(wèn)控制數(shù)據(jù);所述應(yīng)用程序模塊I與所述元數(shù)據(jù)管理服務(wù)模塊2之間基于HTTP協(xié)議進(jìn)行控制流的雙向通信,所述應(yīng)用程序模塊I與所述云存儲(chǔ)模塊4之間基于HTTP協(xié)議進(jìn)行數(shù)據(jù)流的雙向通信,所述元數(shù)據(jù)管理服務(wù)模塊2基于HTTP協(xié)議向所述云存儲(chǔ)模塊4發(fā)送控制流,所述元數(shù)據(jù)管理服務(wù)模塊2遍歷所述數(shù)據(jù)庫(kù)服務(wù)模塊3獲取文件列表。
[0039]于本發(fā)明一實(shí)施例中,所述數(shù)據(jù)庫(kù)服務(wù)模塊3為關(guān)系型數(shù)據(jù)庫(kù)MySQL,所述云存儲(chǔ)模塊4可以包括阿里云OSS、AffS S3以及其他云對(duì)象存儲(chǔ)。
[0040]于本發(fā)明一實(shí)施方式中,當(dāng)所述應(yīng)用程序模塊I訪問(wèn)所述云存儲(chǔ)模塊4的數(shù)據(jù)時(shí),所述應(yīng)用程序模塊I向所述元數(shù)據(jù)管理服務(wù)模塊2發(fā)起請(qǐng)求;當(dāng)獲得訪問(wèn)權(quán)限時(shí),所述元數(shù)據(jù)管理服務(wù)模塊2將所述云存儲(chǔ)模塊4內(nèi)真實(shí)數(shù)據(jù)的訪問(wèn)地址簽名后發(fā)送給所述應(yīng)用程序模塊1,然后根據(jù)得到的訪問(wèn)地址進(jìn)行數(shù)據(jù)的讀寫,讀寫完畢后再向所述元數(shù)據(jù)管理服務(wù)模塊2匯報(bào)操作結(jié)果。
[0041]于本發(fā)明一實(shí)施方式中,當(dāng)所述應(yīng)用程序模塊I向所述云存儲(chǔ)模塊4上傳文件時(shí),首先向所述元數(shù)據(jù)管理服務(wù)模塊2查詢對(duì)象是否存在;當(dāng)對(duì)象不存在時(shí),向所述元數(shù)據(jù)管理服務(wù)模塊2添加文件元數(shù)據(jù)信息,當(dāng)對(duì)象存在時(shí),向所述元數(shù)據(jù)管理服務(wù)模塊2查詢對(duì)象etag是否存在;當(dāng)對(duì)象etag不存在時(shí),所述應(yīng)用程序模塊I向所述云存儲(chǔ)模塊4上傳數(shù)據(jù)對(duì)象,當(dāng)對(duì)象etag存在時(shí),將所述云存儲(chǔ)模塊4的數(shù)據(jù)地址更新到所述元數(shù)據(jù)管理服務(wù)模塊2中。
[0042]于本發(fā)明一實(shí)施方式中,所述應(yīng)用程序模塊I向所述云存儲(chǔ)模塊4下載文件時(shí),首先向所述云存儲(chǔ)模塊4下載文件時(shí),然后向所述元數(shù)據(jù)管理服務(wù)模塊2獲取文件的數(shù)據(jù)下載地址;所述應(yīng)用程序模塊I還用于向所述元數(shù)據(jù)管理服務(wù)模塊2查