PUT Bucket 元資料通知配置
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 | 描述 | 必需的 |
|---|---|---|
元數據通知配置 |
用於指定元資料通知的物件和目的地的規則的容器標籤。 包含一個或多個 Rule 元素。 |
是的 |
規則 |
規則的容器標籤,用於標識應將其元資料新增至指定索引的物件。 前綴重疊的規則將被拒絕。 包含在 MetadataNotificationConfiguration 元素中。 |
是的 |
ID |
規則的唯一識別碼。 包含在 Rule 元素中。 |
不 |
地位 |
狀態可以是「啟用」或「停用」。對於已停用的規則,不會採取任何措施。 包含在 Rule 元素中。 |
是的 |
前綴 |
與前綴相符的物件會受到規則的影響,並且其元資料會被傳送到指定的目標。 若要符合所有對象,請指定一個空前綴。 包含在 Rule 元素中。 |
是的 |
目的地 |
規則目標的容器標籤。 包含在 Rule 元素中。 |
是的 |
甕 |
發送物件元資料的目標的 URN。必須是具有以下屬性的StorageGRID端點的 URN:
端點是使用租用戶管理器或租用戶管理 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 文件並將其傳送至目標端點。
此範例展示了當物件具有以下按鍵時可以產生的 JSON 範例 SGWS/Tagging.txt`在名為 `test。這 `test`bucket 沒有版本控制,因此 `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(如果存在)。
| 類型 | 項目名稱 | 描述 |
|---|---|---|
儲存桶和物件資訊 |
桶 |
儲存桶的名稱 |
儲存桶和物件資訊 |
鑰匙 |
物件鍵名 |
儲存桶和物件資訊 |
版本ID |
物件版本,適用於版本化儲存桶中的對象 |
儲存桶和物件資訊 |
地區 |
例如,儲存桶區域 |
系統元數據 |
尺寸 |
HTTP 用戶端可見的物件大小(以位元組為單位) |
系統元數據 |
md5 |
物件哈希 |
用戶元數據 |
元數據
|
物件的所有用戶元數據,以鍵值對的形式 |
標籤 |
標籤
|
為物件定義的所有物件標籤,以鍵值對的形式 |
|
|
對於標籤和使用者元數據, StorageGRID將日期和數字作為字串或 S3 事件通知傳遞給 Elasticsearch。若要設定 Elasticsearch 將這些字串解釋為日期或數字,請按照 Elasticsearch 的動態欄位對應和對應日期格式的說明進行操作。在配置搜尋整合服務之前,您必須在索引上啟用動態欄位對應。文檔被索引後,您無法在索引中編輯文檔的欄位類型。 |