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

PUT 存储分段元数据通知配置请求

贡献者

通过 PUT Bucket 元数据通知配置请求,您可以为各个存储分段启用搜索集成服务。您在请求正文中提供的元数据通知配置 XML 用于指定将其元数据发送到目标搜索索引的对象。

要完成此操作,您对某个存储分段拥有 S3 : PutBucketMetadataNotification 权限,或者您是帐户的 root 用户。

请求

此请求必须在请求正文中包含元数据通知配置。每个元数据通知配置都包含一个或多个规则。每个规则都指定其适用场景 的对象以及 StorageGRID 应将对象元数据发送到的目标。

可以按对象名称的前缀筛选对象。例如,您可以将前缀为 ` /images` 的对象的元数据发送到一个目标,将前缀为 ` /videos` 的对象发送到另一个目标。

前缀重叠的配置无效,在提交时会被拒绝。例如,不允许在配置中为前缀为 test 的对象包含一个规则,而为前缀为 test2 的对象包含另一个规则。

必须使用 StorageGRID 端点的 URN 指定目标。当提交元数据通知配置时,此端点必须存在,否则此请求会因 400 错误请求 而失败。错误消息显示: Unable to save the metadata notification ( search ) policy 。指定的端点 URN 不存在: 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 Description Required

MetadataNotificationConfiguration

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

包含一个或多个规则元素。

是的。

规则

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

拒绝前缀重叠的规则。

包含在 MetadataNotificationConfiguration 元素中。

是的。

ID

规则的唯一标识符。

包含在 Rule 元素中。

Status

状态可以是 " 已启用 " 或 " 已禁用 " 。不会对已禁用的规则执行任何操作。

包含在 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 包含在目标元素中。

是的。

请求示例

此示例显示了为存储分段启用搜索集成。在此示例中,所有对象的对象元数据都将发送到同一目标。

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 存储分段未进行版本控制,因此 veversionId 标记为空。

{
  "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 (如果存在)。

Type 项目名称 Description

存储分段和对象信息

存储分段

存储分段的名称

存储分段和对象信息

key

对象密钥名称

存储分段和对象信息

版本 ID

对象版本,用于受版本控制的分段中的对象

存储分段和对象信息

region

分段区域,例如 us-east-1

系统元数据

size

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

系统元数据

MD5

对象哈希

用户元数据

元数据 ` 键:值 _`

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

Tags

标记 ` key : value`

为对象定义的所有对象标记,作为键值对

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

相关信息

使用租户帐户