使用 PUT Bucket 元資料通知設定請求在 StorageGRID 中啟用搜尋整合服務
PUT Bucket 中繼資料通知組態請求可讓您為單一儲存桶啟用搜尋整合服務。您在請求內文中提供的中繼資料通知組態 XML 指定要將其中繼資料傳送至目的地搜尋索引的物件。
您必須擁有儲存貯體的 s3:PutBucketMetadataNotification 權限,或是帳戶根目錄使用者,才能完成此操作。
要求
請求正文中必須包含中繼資料通知組態。每個中繼資料通知組態包含一或多條規則。每條規則指定其適用的物件,以及 StorageGRID 應將物件中繼資料傳送至的目的地。
可以根據物件名稱的前綴對物件進行篩選。例如,您可以將具有前綴 `/images`的物件中繼資料傳送到一個目的地,並將具有前綴 `/videos`的物件中繼資料傳送到另一個目的地。
前綴重疊的組態無效,提交時會被拒絕。例如,若某組態包含兩條規則,一條針對前綴為 `test`的物件,另一條針對前綴為 `test2`的物件,則該組態將不被允許。
目的地必須使用 StorageGRID 端點的 URN 來指定。提交中繼資料通知組態時,端點必須存在,否則請求將失敗為 400 Bad Request。錯誤訊息如下: Unable to save the metadata notification (search) policy. The specified endpoint URN does not exist: URN.
<MetadataNotificationConfiguration>
<Rule>
<ID>Rule-1</ID>
<Status>rule-status</Status>
<Prefix>key-prefix</Prefix>
<Destination>
<Urn>arn:aws:es:region:account-ID:domain/mydomain/myindex/mytype</Urn>
</Destination>
</Rule>
<Rule>
<ID>Rule-2</ID>
...
</Rule>
...
</MetadataNotificationConfiguration>
此表說明中繼資料通知組態 XML 中的元素。
| Name | 說明 | 必填 |
|---|---|---|
MetadataNotificationConfiguration |
用於指定中繼資料通知的物件和目的地的規則容器標籤。 包含一個或多個規則元素。 |
是的 |
規則 |
用於識別應將其中繼資料新增至指定索引之物件規則的容器標籤。 前綴重疊的規則將被拒絕。 包含在 MetadataNotificationConfiguration 元素中。 |
是的 |
ID |
規則的唯一識別碼。 包含在規則元素中。 |
否 |
狀態 |
狀態可以是「已啟用」或「已停用」。對於已停用的規則,不會採取任何行動。 包含在規則元素中。 |
是的 |
前綴 |
與前綴相符的物件會受到該規則的影響,其中繼資料會傳送至指定的目的地。 若要符合所有物件,請指定空白前綴。 包含在規則元素中。 |
是的 |
目的地 |
規則目的地的容器標籤。 包含在規則元素中。 |
是的 |
Urn |
物件中繼資料發送到的目的地的 URN。必須是具有以下屬性的 StorageGRID 端點的 URN:
端點透過 Tenant Manager 或租戶管理 API 進行設定。它們採用以下形式:
必須先設定端點,然後才能提交組態 XML,否則組態將失敗並出現 404 錯誤。 Urn 包含在 Destination 元素中。 |
是的 |
請求範例
此範例示範如何為儲存桶啟用搜尋整合。在本範例中,所有物件的物件中繼資料都會傳送到相同目的地。
PUT /test1?x-ntap-sg-metadata-notification HTTP/1.1
Date: date
Authorization: authorization string
Host: host
<MetadataNotificationConfiguration>
<Rule>
<ID>Rule-1</ID>
<Status>Enabled</Status>
<Prefix></Prefix>
<Destination>
<Urn>urn:sgws:es:::sgws-notifications/test1/all</Urn>
</Destination>
</Rule>
</MetadataNotificationConfiguration>
在此範例中,符合前綴 `/images`的物件之物件中繼資料會傳送至一個目的地,而符合前綴 `/videos`的物件之物件中繼資料則會傳送至第二個目的地。
PUT /graphics?x-ntap-sg-metadata-notification HTTP/1.1
Date: date
Authorization: authorization string
Host: host
<MetadataNotificationConfiguration>
<Rule>
<ID>Images-rule</ID>
<Status>Enabled</Status>
<Prefix>/images</Prefix>
<Destination>
<Urn>arn:aws:es:us-east-1:3333333:domain/es-domain/graphics/imagetype</Urn>
</Destination>
</Rule>
<Rule>
<ID>Videos-rule</ID>
<Status>Enabled</Status>
<Prefix>/videos</Prefix>
<Destination>
<Urn>arn:aws:es:us-west-1:22222222:domain/es-domain/graphics/videotype</Urn>
</Destination>
</Rule>
</MetadataNotificationConfiguration>
搜尋整合服務產生的 JSON
為儲存桶啟用搜尋整合服務時,每次新增、更新或刪除物件中繼資料或標籤時,都會產生一個 JSON 文件並將其傳送至目的地端點。
此範例顯示在名為 test 的儲存貯體中建立具有金鑰 SGWS/Tagging.txt 的物件時,可能產生的 JSON 範例。 test 儲存貯體未啟用版本控制,因此 versionId 標記為空。
{
"bucket": "test",
"key": "SGWS/Tagging.txt",
"versionId": "",
"accountId": "86928401983529626822",
"size": 38,
"md5": "3d6c7634a85436eee06d43415012855",
"region":"us-east-1",
"metadata": {
"age": "25"
},
"tags": {
"color": "yellow"
}
}
中繼資料通知中包含的物件中繼資料
此表列出啟用搜尋整合時傳送至目的地端點的 JSON 文件中所包含的所有欄位。
文件名稱包含儲存桶名稱、物件名稱和版本 ID(如果有)。
| 類型 | 物品名稱 | 說明 |
|---|---|---|
儲存桶和物件資訊 |
儲存貯體 |
儲存貯體的名稱 |
儲存桶和物件資訊 |
金鑰 |
物件鍵名 |
儲存桶和物件資訊 |
versionID |
物件版本,適用於版本化儲存貯體中的物件 |
儲存桶和物件資訊 |
區域 |
儲存貯體區域,例如 |
系統中繼資料 |
尺寸 |
HTTP 用戶端可見的物件大小(以位元組為單位) |
系統中繼資料 |
md5 |
物件雜湊 |
使用者中繼資料 |
中繼資料
|
該物件的所有使用者中繼資料,以鍵值對的形式呈現。 |
標籤 |
標籤
|
物件的所有定義物件標籤,以鍵值對的形式呈現 |
|
|
對於標籤和使用者中繼資料,StorageGRID 會將日期和數字作為字串或 S3 事件通知傳遞給 Elasticsearch。若要設定 Elasticsearch 將這些字串解釋為日期或數字,請按照 Elasticsearch 的動態欄位對應和日期格式對應說明進行操作。您必須先在索引上啟用動態欄位對應,然後才能設定搜尋整合服務。文件建立索引後,您將無法在索引中編輯該文件的欄位類型。 |