本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
存取物件
您可透過路徑或 objectIdentifier
存取目錄中的物件。
路徑— 透過說明到達方法的路徑名稱,可在 Cloud Directory 樹狀目錄中識別及找到每個物件。路徑從根目錄開始 (上圖中的節點 000
)。路徑的表示法為以斜線 (/) 標記的連結開始,後面接著以路徑分隔符號 (也是斜線) 分隔的子連結,一直到路徑的最後一個部分。例如,使用路徑 005
可以找到上圖中的物件 /group/a/d
。多個路徑可找到一個物件,因為分葉節點物件可有多個父項。使用以下路徑也可以找到物件 005
:/group/b/e
物件識別器— 目錄中的每個物件都有唯一的全域識別符,即ObjectIdentifier
。ObjectIdentifier
傳回為CreateObject
API 呼叫。您也可以ObjectIdentifier
透過使用GetObjectInformation
API 呼叫。例如,若要擷取物件 005
的物件識別符,您可以指向物件的物件參考為路徑呼叫 GetObjectInformation
來導致物件,即 group/b/e 或 group/a/d。
GetObjectInformationRequest request = new GetObjectInformationRequest() .withDirectoryArn(directoryArn) .withObjectReference("/group/b/e") .withConsistencyLevel(level) GetObjectInformationResult result = cdClient.getObjectInformation(request) String objectIdentifier = result.getObjectIdentifier()
填入物件
您可以使用 AddFacetToObject
API 呼叫將新的面向新增到物件。物件類型是由連接到物件的面向所決定。目錄中的物件附件是根據物件類型運作。連接物件時,請記住這些規則:
-
分葉節點物件不能有子項。
-
節點物件可有多個子項。
-
政策類型的物件不能有子項,但可有零或一個父項。
更新物件
您有多種方式可以更新物件:
-
使用
UpdateObjectAttributes
操作更新物件上的個別面向屬性。 -
使用
AddFacetToObject
操作將新的面向新增到物件。 -
使用
RemoveFacetFromObject
操作從物件中刪除現有的面向。
刪除物件
連接的物件必須符合特定條件,您才可以從目錄中刪除它:
-
您必須將物件從樹狀目錄分離。只有當物件沒有任何子項時,您才可以分離物件。如果物件有子項,您必須先分離所有子項。
-
您只有在刪除該物件中的所有屬性後,才可以刪除分離的物件。您可以透過刪除連接到該物件的每個面向來刪除物件上的屬性。您可以呼叫
GetObjectInformation
,以擷取連接到物件的面向清單。 -
物件也必須沒有任何父項、沒有任何政策附件、沒有任何索引附件。
因為物件必須完全與樹狀目錄分離才能刪除,所以您必須使用物件識別符將其刪除。
查詢物件
本節討論與在目錄中查詢物件相關的各種元素。
目錄周遊
因為 Cloud Directory 是樹狀目錄,所以您可以使用ListObjectChildren
API 操作,或從下而上使用ListObjectParents
API 操作。
政策查閱
考慮到物件參考,LookupPolicy
API 操作會以由上而下的方式傳回所有連接的政策及其一或多個根路徑。任何無法指向根目錄的路徑都予以忽略。會傳回所有政策類型物件。
如果此物件是分葉節點,它可以有到達根目錄的多個路徑。這個呼叫每個呼叫只傳回一個路徑。若要擷取額外的路徑,請使用分頁字符。
索引查詢
Cloud Directory 使用以下範圍支援豐富的索引查詢功能:
-
FIRST - 從第一個已建立索引的屬性值開始。開始屬性值為選用。
-
LAST - 傳回直到索引結尾的屬性值,包括缺漏值。結束屬性值為選用。
-
LAST_BEFORE_MISSING_VALUES - 傳回直到索引結尾的屬性值,排除缺漏值。
-
INCLUSIVE - 包括要指定的屬性值。
-
EXCLUSIVE - 排除要指定的屬性值。
父項路徑清單
使用 ListObjectParentPaths
API 呼叫,您可以擷取任何物件類型的所有可用父項路徑 (節點、分葉節點、政策節點、索引節點)。當您需要評估物件的所有父項時,這個 API 操作很有用。這個呼叫會傳回根目錄中所請求物件前的所有物件。它也會根據使用者定義的 MaxResults
傳回路徑數,如果父項有多個路徑。多個 API 呼叫中傳回的路徑和節點順序是一致的,除非物件已遭刪除或移動。目標物件中不指向根目錄的路徑都予以忽略。
如需此運作方式的範例,假設目錄的物件階層類似下圖。
有編號的圖形代表不同的物件。該物件和根目錄 (000
) 之間的箭頭數代表完整的路徑,可能會在輸出中表示。下表顯示對階層中特定分葉節點物件所執行之查詢的請求和回應。
要求 | 回應 |
---|---|
004, PageToken: null, MaxResults: 1 |
[{/group/a/c], [000, 001, 002, 004]}], PageToken:
null |
005, PageToken: null, MaxResults: 2 |
[{/group/a/d, [000, 001, 002, 005]}, { /group/b/e, [000, 001, 003,
005]}], PageToken: null 注意在本例中,物件 |
005, PageToken: null, MaxResults: 1 |
[{/group/a/d, [000, 001, 002, 005]}], PageToken:
<encrypted_next_token> |
005, PageToken: <encrypted_next_token>, MaxResults:
1 |
[{/group/b/e, [000, 001, 003, 005]}], PageToken: null 注意在本例中,物件 |
006, PageToken: null, MaxResults: 1 |
[{/group/b/f, [000, 001, 003, 006]}], PageToken:
null |
007, PageToken: null, MaxResults: 1 |
[{/group/a/index, [000, 001, 002, 007]}], PageToken:
null |