Skip to main content
本产品推出了新版本。
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

使用 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 中的元素。

名称 问题描述 必填项

MetadataNotificationConfiguration

用于指定元数据通知的对象和目标的规则的容器标记。

包含一个或多个 Rule 元素。

规则

标识其元数据应添加到指定索引中的对象的规则的容器标记。

具有重叠前缀的规则将被拒绝。

包含在 MetadataNotificationConfiguration 元素中。

ID

规则的唯一标识符。

包含在 Rule 元素中。

状态

状态可以是"已启用"或"已禁用"。对于禁用的规则,不采取任何操作。

包含在 Rule 元素中。

前缀

匹配前缀的对象受规则影响,其元数据将发送到指定目的地。

要匹配所有对象,请指定空前缀。

包含在 Rule 元素中。

目标

规则目标的容器标记。

包含在 Rule 元素中。

URN

发送对象元数据的目标的 URN。必须是具有以下属性的 StorageGRID 端点的 URN:

  • es 必须是第三个元素。

  • URN 必须以存储元数据的索引和类型结尾,格式为 domain-name/myindex/mytype

端点使用租户管理器或租户管理 API 进行配置。它们采用以下形式:

  • arn:aws:es:region:account-ID:domain/mydomain/myindex/mytype

  • urn:mysite:es:::mydomain/myindex/mytype

必须在提交配置 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

对象版本,适用于版本化存储桶中的对象

存储桶和对象信息

区域

Bucket 区域,例如 us-east-1

系统元数据

大小

对象大小(以字节为单位),对 HTTP 客户端可见

系统元数据

md5

对象哈希

用户元数据

元数据 key:value

对象的所有用户元数据,作为键值对

标记

标签 key:value

为对象定义的所有对象标签,以键值对形式表示

备注 对于标签和用户元数据,StorageGRID 将日期和数字作为字符串或 S3 事件通知传递给 Elasticsearch。要配置 Elasticsearch 将这些字符串解释为日期或数字,请按照 Elasticsearch 说明进行动态字段映射和映射日期格式。在配置搜索集成服务之前,必须在索引上启用动态字段映射。为文档编制索引后,您无法在索引中编辑文档的字段类型。
相关信息

"使用租户帐户"