OSS階層命名空間功能,將對象(Object)組織到多級目錄層級結構中,使得重新命名目錄或檔案成為單個原子操作,無需列舉和處理共用目錄名稱首碼的所有對象。與原Bucket內部扁平命名空間中使用正斜線+檔案名稱的方式類比檔案夾相比,階層命名空間功能極大地提高了目錄管理操作的效能。
功能優勢
原子目錄操作
在OSS扁平命名空間沒有真實目錄的情況下,應用程式可能需要處理數百萬個單獨的對象才能完成目錄級任務。 相比之下,階層命名空間可通過更新單個父目錄批量處理多個任務。
效能最佳化
與OSS扁平命名空間相比,階層命名空間不需要在分析資料前,對資料進行複製或轉換,因此極大地提高了目錄管理操作的效能。階層命名空間對於巨量資料分析架構尤為重要,例如Hive、Spark等工具在作業過程中通常將輸出結果寫入臨時路徑,然後在作業結束時需要對該位置進行重新命名。 如果沒有階層命名空間,該情境下重新命名操作通常比分析過程本身更耗時。
操作步驟
注意事項
支援地區
目前僅支援在澳大利亞(雪梨)關停中、美國(矽谷)、日本(東京)、英國(倫敦)、馬來西亞(吉隆坡)地區開啟階層命名空間。
建立目錄
設定的目錄絕對路徑(DirectoryName)中不能出現連續的正斜線(/)。
目錄不支援傳入資料,目錄的Content-Length固定為0。
目錄的Content-Type固定為
application/x-directory
,無法修改。重新命名目錄或檔案
重新命名後的目錄或檔案不能與同一個Bucket下已存在的目錄或者檔案重名。
重新命名後的目錄或檔案,其父級目錄必須存在。例如目錄重新命名為
destfolder/examplefolder/test
,則Bucket中必須存在destfolder/examplefolder
。刪除目錄
遞迴刪除
遞迴刪除用於刪除目錄下的檔案和子目錄。使用遞迴刪除方式刪除目錄時,您必須擁有目錄以及該目錄下所有檔案和子目錄的DeleteObject許可權。
例如要遞迴刪除dest目錄下的子目錄testfolder及其包含的所有檔案,您必須擁有
dest/testfolder
和dest/testfolder/*
的DeleteObject許可權。重要使用遞迴刪除方式刪除目錄時,如果同時存在向目錄的並發寫請求,則可能導致目錄刪除失敗。
非遞迴刪除
非遞迴刪除用於刪除空目錄。使用非遞迴方式刪除目錄時,您必須擁有目錄的DeleteObject許可權。
不支援的功能
在開啟了階層命名空間的Bucket中,不支援使用以下功能:
分類 | 說明 |
Bucket層級的功能 |
|
Object層級的功能 |
|