對象存儲方法和裝置的制造方法
【專利摘要】本公開公開了一種對象存儲方法,包括以下步驟:將通過短鏈接應用程序接口接收到的申請請求發送至服務器;獲取服務器分配的與申請請求對應的短鏈接;當對象存儲集群收到通過短鏈接發送的下載請求時,在對象存儲集群的數據庫中對短鏈接執行查找操作。上述對象存儲方法不僅可以使用戶得到短鏈接,便于使用,同時,還可以支持用戶對短鏈接設置失效時間,方便靈活。本公開還公開了一種對象存儲裝置。
【專利說明】
對象存儲方法和裝置
技術領域
[0001]本公開涉及計算機存儲技術領域,特別是涉及一種對象存儲方法和裝置。
【背景技術】
[0002]目前,對象存儲在互聯網的大潮中受到了廣泛關注,并得到了迅速的發展。對象存儲與文件存儲不同,對象不以目錄分層的結構進行組織。每個對象都位于被稱為存儲池的扁平的空間的相同層級,每一級的每個元素在存儲系統中都有唯一的標識,用戶通過這個標識來訪問容器或者對象。采用扁平的數據組織結構拋棄了嵌套的文件夾,避免維護龐大的目錄樹。
[0003]在大數據和互聯網時代,存儲的文件/對象超過上百萬個,單位時間內的訪問次數和并發訪問量也達到了前所未有的量級,在這種情況下,目錄樹會給存儲系統帶來很大的開銷和諸多問題,成為系統的瓶頸。另外一個讓對象存儲煥發生命力的因素是,對象存儲不再提供POSIX兼容的接口(如open,c lose,read ,write等),而是可以非常方便地通過HTTPRestful API接口和對象進行交互:通過PUT和GET進行上傳下載,通過DELETE進行刪除。對象存儲可以為用戶提供視頻、音樂等較大文件的存儲,也可以提供日志的服務,另外,存儲服務取得更大發展的更大因素是取得了移動互聯網的青睞,在移動端的APP中,對象存儲簡單的HTTP接口簡化了開發者的開發流程,并且還可以為用戶提供海量的存儲空間。
[0004]在當前的社交工具中,會引用來自對象存儲的圖片、小視頻等多媒體內容,通常是采用嵌入一個網絡鏈接的方式進行引入。但是,在對象存儲中的設置為public-read的對象的網絡鏈接通常是由域名+bucketname+objectname的方式拼接而成,而如果是采用signedurl 白勺方式,貝!|±或名為+bucketname+ob jectname+ak+expiretime+signature 白勺方式,這勢必會造成這個鏈接非常長,而社交工具通常會有字數的限制,當用戶想嵌入這種地址時,勢必需要減少其他內容的長度,不具有靈活性與易用性。
【發明內容】
[0005]基于此,有必要提供一種靈活且具有易用性的對象存儲方法和裝置。
[0006]—種對象存儲方法,該方法包括:
[0007]將通過短鏈接應用程序接口接收到的申請請求發送至服務器;
[0008]獲取所述服務器分配的與所述申請請求對應的短鏈接;
[0009]當所述對象存儲集群收到通過所述短鏈接發送的下載請求時,在所述對象存儲集群的數據庫中對所述短鏈接執行查找操作。
[0010]在其中一個實施例中,所述將通過短鏈接應用程序接口接收到的申請請求發送至服務器之前,還包括:對所述短鏈接應用程序接口中的參數進行設置;
[0011]其中,所述參數為容器名稱參數,向所述容器名稱參數中的容器上傳一個具有預設對象名稱的對象。
[0012]在其中一個實施例中,其中,所述獲取所述服務器分配的與所述申請請求對應的短鏈接包括:
[0013]獲取所述服務器以用戶的長鏈接為key,建立的針對一個用戶的所述短鏈接到長鏈接的映射;以及
[0014]獲取所述服務器通過遞增方式增加所述申請請求為用戶分配一個遞增的所述短鏈接。
[0015]在其中一個實施例中,其中,所述當所述對象存儲集群收到通過所述短鏈接發送的下載請求時,在所述對象存儲集群的數據庫中對所述短鏈接執行查找操作包括:
[0016]如果在所述對象存儲集群的所述數據庫中沒有查找到與所述下載請求對應的所述短鏈接,則跳轉到錯誤界面,其中,所述短鏈接為失效狀態或未被用戶執行認證操作狀態均執行跳轉到所述錯誤界面操作;
[0017]如果在所述對象存儲集群的所述數據庫中查獲到與所述下載請求對應的所述短鏈接,則重定向到具有所述預設對象名稱的所述對象的長鏈接中。
[0018]在其中一個實施例中,所述如果在所述對象存儲集群的所述數據庫中沒有查找到與所述下載請求對應的所述短鏈接,則跳轉到錯誤界面,還包括:啟動線程,查找所述對象存儲集群的所述數據庫中為失效狀態的所述短鏈接,并從所述對象存儲集群的所述數據庫中進行刪除。
[0019]一種對象存儲裝置,包括:
[0020]發送模塊,用于將通過短鏈接應用程序接口接收到的申請請求發送至服務器;
[0021]獲取模塊,用于獲取所述服務器分配的與所述申請請求對應的短鏈接;
[0022]查找模塊,用于當所述對象存儲集群收到通過所述短鏈接發送的下載請求時,在所述對象存儲集群的數據庫中對所述短鏈接執行查找操作。
[0023]在其中一個實施例中,還包括:設置模塊,用于對所述短鏈接應用程序接口中的參數進行設置;
[0024]其中,所述參數為容器名稱參數,向所述容器名稱參數中的容器上傳一個具有預設對象名稱的對象。
[0025]在其中一個實施例中,其中,所述獲取模塊包括:
[0026]第一獲取模塊,用于獲取所述服務器以用戶的長鏈接為key,建立的針對一個用戶的所述短鏈接到長鏈接的映射;
[0027]第二獲取模塊,用于獲取所述服務器通過遞增方式增加所述申請請求為用戶分配一個遞增的所述短鏈接。
[0028]在其中一個實施例中,其中,所述查找模塊包括:
[0029]跳轉模塊,用于如果在所述對象存儲集群的所述數據庫中沒有查找到與所述下載請求對應的所述短鏈接,則跳轉到錯誤界面,其中,所述短鏈接為失效狀態或未被用戶執行認證操作狀態均執行跳轉到所述錯誤界面操作;
[0030]重定向模塊,用于如果在所述對象存儲集群的所述數據庫中查獲到與所述下載請求對應的所述短鏈接,則重定向到具有所述預設對象名稱的所述對象的長鏈接中。
[0031]在其中一個實施例中,還包括:刪除模塊,用于啟動線程,查找所述對象存儲集群的所述數據庫中為失效狀態的所述短鏈接,并從所述對象存儲集群的所述數據庫中進行刪除。
[0032]上述對象存儲方法和裝置,將通過短鏈接應用程序接口接收到的申請請求發送至服務器;獲取服務器分配的與申請請求對應的短鏈接;當對象存儲集群收到通過短鏈接發送的下載請求時,在對象存儲集群的數據庫中對短鏈接執行查找操作。上述對象存儲方法不僅可以使用戶得到短鏈接,便于使用,同時,還可以支持用戶對短鏈接設置失效時間,方便靈活。
【附圖說明】
[0033]圖1是一個實施例中對象存儲方法的流程示意圖;
[0034]圖2是另一個實施例中對象存儲方法的流程示意圖;
[0035]圖3是一個實施例中對象存儲裝置的結構示意圖;以及
[0036]圖4是另一個實施例中對象存儲裝置的結構示意圖。
【具體實施方式】
[0037]為使本公開的目的、技術方案和優點更加清楚明了,下面結合【具體實施方式】并參照附圖,對本公開進一步詳細說明。應該理解,這些描述只是示例性的,而并非要限制本公開的范圍。此外,在以下說明中,省略了對公知結構和技術的描述,以避免不必要地混淆本公開的概念。
[0038]參見圖1,一個實施例中,提供了一種對象存儲方法,該方法包括以下步驟:
[0039]步驟102,將通過短鏈接應用程序接口接收到的申請請求發送至服務器。
[0040]本實施例中,將通過短鏈接應用程序接口接收到的申請請求發送至服務器之前,還包括:對短鏈接應用程序接口中的參數進行設置;其中,參數為容器名稱參數,向容器名稱參數中的容器上傳一個具有預設對象名稱的對象。
[0041 ]步驟104,獲取服務器分配的與申請請求對應的短鏈接。
[0042]本實施例中,獲取服務器分配的與申請請求對應的短鏈接包括:獲取服務器以用戶的長鏈接為key,建立的針對一個用戶的短鏈接到長鏈接的映射;以及獲取服務器通過遞增方式增加申請請求為用戶分配一個遞增的短鏈接。
[0043]步驟106,當對象存儲集群收到通過短鏈接發送的下載請求時,在對象存儲集群的數據庫中對短鏈接執行查找操作。
[0044]本實施例中,如果在對象存儲集群的數據庫中沒有查找到與下載請求對應的短鏈接,則跳轉到錯誤界面,其中,短鏈接為失效狀態或未被用戶執行認證操作狀態均執行跳轉到錯誤界面操作;如果在對象存儲集群的數據庫中查獲到與下載請求對應的短鏈接,則重定向到具有預設對象名稱的對象的長鏈接中。
[0045]上述對象存儲方法,將通過短鏈接應用程序接口接收到的申請請求發送至服務器;獲取服務器分配的與申請請求對應的短鏈接;當對象存儲集群收到通過短鏈接發送的下載請求時,在對象存儲集群的數據庫中對短鏈接執行查找操作。上述對象存儲方法不僅可以使用戶得到短鏈接,便于使用,同時,還可以支持用戶對短鏈接設置失效時間,方便靈活。
[0046]如圖2所示,在一個實施例中,提供了一種對象存儲方法,該方法包括以下步驟:
[0047]步驟201,通過短鏈接接口,將申請短鏈接的申請請求發送至對象存儲集群中。
[0048]本實施例中,在云對象存儲中新增一個API (App I i cat i on ProgrammingInterface,應用程序編程接口),能夠根據用戶申請的對象名生成一個新的較短的鏈接地址,便于用戶使用。其中,該API為:endpoint: /shorten URL;method:PUT;bucket name+object name;expire time;authorizat1n:與現有技術一樣,進行簽名計算。
[0049]具體的,在通過短鏈接接口,將申請短鏈接的申請請求發送至對象存儲集群中之前還包括:用戶向預設容器中上傳一個具有預設對象名稱的對象。例如,用戶往bucketname這個bucket上傳一個名為object name的對象。進一步的,用戶通過shorten URL這個API發起請求,向對象存儲集群申請一個短鏈接。
[0050]步驟202,對象存儲集群接收到申請請求后,將申請請求發送至服務器。
[0051]本實施例中,對象存儲集群收到請求之后,會將請求轉發到某一個負載均衡的服務器上,這個服務器采取一種遞增的方式來增加請求為用戶分配一個遞增的短鏈接。其中,因為短鏈接由10個數字,26個大寫字母,26個小寫字母組成,共有62中可能,所以這個遞增的轉換為62進制的字符串。另外,服務器需要以用戶的長鏈接為key,建立一個用戶短鏈接到長鏈接的映射。對于e xp i re t ime = -1的請求,這個生成的短鏈接長期有效,不做回收;當expire time為大于O的整數時,代表這個短鏈接需要進行回收,以便滿足用戶對于數據失效的要求。
[0052]步驟203,當用戶通過服務器分配的短鏈接向對象存儲集群發送下載請求時,與下載請求對應的短鏈接是否存在于數據庫中執行查找操作。
[0053]本實施例中,當用戶通過短鏈接發起下載請求時,存儲集群收到請求之后,先到數據庫中查找此短鏈接,如果沒有找到,則可能是此短鏈接沒有被用戶認證,或者此短鏈接已經失效,對于上述兩種情況,都直接返回404,錯誤界面;如果找到了短鏈接,則直接重定向到對象的長鏈接中去。
[0054]步驟204,啟動線程,查找數據庫中為失效狀態的短鏈接,并從數據庫中進行刪除。
[0055]本實施例中,后臺會啟動一個失效線程,尋找數據庫中已經達到超時的鏈接,并從數據庫中刪除。
[0056]基于同一發明構思,在一個實施例中,還提出一種對象存儲裝置。如圖3,該對象存儲裝置10包括發送模塊200、獲取模塊400和查找模塊600。
[0057]其中,發送模塊200用于將通過短鏈接應用程序接口接收到的申請請求發送至服務器;獲取模塊400用于獲取服務器分配的與申請請求對應的短鏈接;查找模塊600用于當對象存儲集群收到通過短鏈接發送的下載請求時,在對象存儲集群的數據庫中對短鏈接執行查找操作。
[0058]此外,如圖4,在一個實施例中,還包括:設置模塊100用于對短鏈接應用程序接口中的參數進行設置;其中,參數為容器名稱參數,向容器名稱參數中的容器上傳一個具有預設對象名稱的對象。
[0059]另外,如圖4,在一個實施例中,獲取模塊400包括:第一獲取模塊410和第二獲取模塊420。其中,第一獲取模塊410用于獲取服務器以用戶的長鏈接為key,建立的針對一個用戶的短鏈接到長鏈接的映射;第二獲取模塊420用于獲取服務器通過遞增方式增加申請請求為用戶分配一個遞增的短鏈接。
[0060]進一步的,如圖4,在一個實施例中,查找模塊600包括:跳轉模塊610和重定向模塊620。
[0061]其中,跳轉模塊610用于如果在對象存儲集群的數據庫中沒有查找到與下載請求對應的短鏈接,則跳轉到錯誤界面,其中,短鏈接為失效狀態或未被用戶執行認證操作狀態均執行跳轉到錯誤界面操作;重定向模塊620用于如果在對象存儲集群的數據庫中查獲到與下載請求對應的短鏈接,則重定向到具有預設對象名稱的對象的長鏈接中。
[0062]更進一步的,如圖4,在一個實施例中,還包括:刪除模塊611用于啟動線程,查找對象存儲集群的數據庫中為失效狀態的短鏈接,并從對象存儲集群的數據庫中進行刪除。
[0063]上述對象存儲裝置,發送模塊200將通過短鏈接應用程序接口接收到的申請請求發送至服務器;獲取模塊400獲取服務器分配的與申請請求對應的短鏈接;查找模塊600當對象存儲集群收到通過短鏈接發送的下載請求時,在對象存儲集群的數據庫中對短鏈接執行查找操作。上述對象存儲裝置不僅可以使用戶得到短鏈接,便于使用,同時,還可以支持用戶對短鏈接設置失效時間,方便靈活。
[0064]應當理解的是,本公開的上述【具體實施方式】僅僅用于示例性說明或解釋本公開的原理,而不構成對本公開的限制。因此,在不偏離本公開的精神和范圍的情況下所做的任何修改、等同替換、改進等,均應包含在本公開的保護范圍之內。此外,本公開所附權利要求旨在涵蓋落入所附權利要求范圍和邊界、或者這種范圍和邊界的等同形式內的全部變化和修改例。
【主權項】
1.一種對象存儲方法,該方法包括: 將通過短鏈接應用程序接口接收到的申請請求發送至服務器; 獲取所述服務器分配的與所述申請請求對應的短鏈接; 當所述對象存儲集群收到通過所述短鏈接發送的下載請求時,在所述對象存儲集群的數據庫中對所述短鏈接執行查找操作。2.根據權利要求1所述的方法,所述將通過短鏈接應用程序接口接收到的申請請求發送至服務器之前,還包括:對所述短鏈接應用程序接口中的參數進行設置; 其中,所述參數為容器名稱參數,向所述容器名稱參數中的容器上傳一個具有預設對象名稱的對象。3.根據權利要求1所述的方法,其中,所述獲取所述服務器分配的與所述申請請求對應的短鏈接包括: 獲取所述服務器以用戶的長鏈接為key,建立的針對一個用戶的所述短鏈接到長鏈接的映射;以及 獲取所述服務器通過遞增方式增加所述申請請求為用戶分配一個遞增的所述短鏈接。4.根據權利要求1所述的方法,其中,所述當所述對象存儲集群收到通過所述短鏈接發送的下載請求時,在所述對象存儲集群的數據庫中對所述短鏈接執行查找操作包括: 如果在所述對象存儲集群的所述數據庫中沒有查找到與所述下載請求對應的所述短鏈接,則跳轉到錯誤界面,其中,所述短鏈接為失效狀態或未被用戶執行認證操作狀態均執行跳轉到所述錯誤界面操作; 如果在所述對象存儲集群的所述數據庫中查獲到與所述下載請求對應的所述短鏈接,則重定向到具有所述預設對象名稱的所述對象的長鏈接中。5.根據權利要求4所述的方法,所述如果在所述對象存儲集群的所述數據庫中沒有查找到與所述下載請求對應的所述短鏈接,則跳轉到錯誤界面,還包括:啟動線程,查找所述對象存儲集群的所述數據庫中為失效狀態的所述短鏈接,并從所述對象存儲集群的所述數據庫中進行刪除。6.—種對象存儲裝置,包括: 發送模塊,用于將通過短鏈接應用程序接口接收到的申請請求發送至服務器; 獲取模塊,用于獲取所述服務器分配的與所述申請請求對應的短鏈接; 查找模塊,用于當所述對象存儲集群收到通過所述短鏈接發送的下載請求時,在所述對象存儲集群的數據庫中對所述短鏈接執行查找操作。7.根據權利要求6所述的裝置,還包括:設置模塊,用于對所述短鏈接應用程序接口中的參數進行設置; 其中,所述參數為容器名稱參數,向所述容器名稱參數中的容器上傳一個具有預設對象名稱的對象。8.根據權利要求6所述的裝置,其中,所述獲取模塊包括: 第一獲取模塊,用于獲取所述服務器以用戶的長鏈接為key,建立的針對一個用戶的所述短鏈接到長鏈接的映射; 第二獲取模塊,用于獲取所述服務器通過遞增方式增加所述申請請求為用戶分配一個遞增的所述短鏈接。9.根據權利要求6所述的裝置,其中,所述查找模塊包括: 跳轉模塊,用于如果在所述對象存儲集群的所述數據庫中沒有查找到與所述下載請求對應的所述短鏈接,則跳轉到錯誤界面,其中,所述短鏈接為失效狀態或未被用戶執行認證操作狀態均執行跳轉到所述錯誤界面操作; 重定向模塊,用于如果在所述對象存儲集群的所述數據庫中查獲到與所述下載請求對應的所述短鏈接,則重定向到具有所述預設對象名稱的所述對象的長鏈接中。10.根據權利要求9所述的裝置,還包括:刪除模塊,用于啟動線程,查找所述對象存儲集群的所述數據庫中為失效狀態的所述短鏈接,并從所述對象存儲集群的所述數據庫中進行刪除。
【文檔編號】G06F17/30GK105978944SQ201610267025
【公開日】2016年9月28日
【申請日】2016年4月26日
【發明人】吳興義
【申請人】樂視控股(北京)有限公司, 樂視云計算有限公司