文档首页/ 对象存储服务 OBS/ API参考/ 桶API/ DIS通知策略/ 设置DIS通知策略-PutDisPolicy
更新时间:2026-04-15 GMT+08:00
分享

设置DIS通知策略-PutDisPolicy

功能介绍

可以通过本接口为指定桶配置DIS通知策略。了解更多设置DIS通知策略的相关信息,请参见使用DIS发送OBS事件通知

接口约束

  • 需要使用IAM的角色与策略授权功能,增加Tenant Administrator权限后才能设置、获取、删除DIS通知策略。使用DIS消息通知需要使用IAM的角色与策略授权功能,创建对OBS云服务的委托,委托赋予的权限需为数据接入服务DIS的DIS User权限。
  • 一个桶中最多同时配置10条DIS通知规则。
  • 对于时延敏感(秒级)的业务,消息通知无法保证时延。
  • 新创建的DIS通知将在5分钟之内生效。
  • 一个桶的多条DIS通知规则不允许重复,即任意对象在发生任意事件时都不能同时匹配两条以上的DIS通知规则,重复规则会创建失败。

    针对同一事件,如果配置了一条前后缀都为空的规则,则不允许再配置第二条规则。前后缀都为空表示对所有对象生效。

    例如:针对Put事件,已存在一条规则A,定义的前缀是“abcd”,后缀是“.txt”。如果要创建另外一条针对Put事件的规则B,则规则B配置不同前后缀的结果如表1所示。

    表1 规则B前后缀配置场景及结果

    规则A前后缀配置

    规则B前后缀配置

    规则B创建结果

    原因

    前缀:abcd

    后缀:.txt

    前缀:abcd

    后缀:.txt

    失败

    前后缀相同

    前缀:abcd

    后缀:空

    失败

    前缀相同,后缀B包含A

    前缀:ab

    后缀:xt

    失败

    前缀B包含A,后缀B包含A

    前缀:abef

    后缀:.txt

    成功

    前缀不同,后缀相同

    前缀:abcd

    后缀:.mp4

    成功

    前缀相同,后缀不同

授权信息

您必须是拥有Tenant Administrator权限,才能调用本接口。配置Tenant Administrator权限,需要使用角色与策略授权(旧版IAM,即IAM v3接口),授权操作请参考使用IAM授权

请求消息样式

PUT /?disPolicy HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Authorization: authorization
Content-Type: application/json
Content-Length: length
Date: date
Body:
{
    "rules": [{
        "id":"rule_id",
        "stream": "stream_name",
        "project": "project_id",
        "events": ["ObjectCreated:*", "ObjectRemoved:*"],
        "prefix": "",
        "suffix": "",
        "agency": "agency_name"
    }]
}

URI参数(URI Parameters)

该请求消息中不使用消息参数。

请求头参数(Request headers)

该请求使用公共请求头,具体参见表3

请求体参数(Request body)

表2 请求体参数(Request body)

参数名称

是否必选

参数类型

描述

rules

Container

参数解释:

策略规则数组,具体说明请详见rules参数说明。rules是id、stream、project、agency、events、prefix、suffix的父节点。

约束限制:

同一个桶下的不同策略前缀不能重复和起始包含,委托建议使用同一个。

取值范围:

数组大小的取值范围为[1, 10]。

默认取值:

不涉及

表3 rules参数说明

参数名称

是否必选

参数类型

描述

id

String

参数解释:

设置DIS通知策略的规则ID。当前桶上配置的DIS策略规则的唯一标识。

约束限制:

该规则ID为桶内唯一。

取值范围:

长度为1~256的字符串,并且字符只能是大写字母、小写字母、数字、下划线(_)或连字符(-)。

默认取值:

不涉及

stream

String

参数解释:

DIS服务通道名称。

约束限制:

需要先在DIS服务创建此通道。

取值范围:

不涉及

默认取值:

不涉及

project

String

参数解释:

DIS服务通道所属的项目ID。

约束限制:

不涉及

取值范围:

获取项目ID的操作请参见获取账号、IAM用户、项目、用户组、区域、委托的名称和ID

默认取值:

不涉及

events

Arrayt

参数解释:

OBS事件列表。

约束限制:

不涉及

取值范围:

长度为0~1023的字符串,取值允许为任意字符。支持的事件类型请参见使用DIS发送OBS事件通知

默认取值:

不涉及

prefix

String

参数解释:

对象名前缀。用于指定的对象名关键字,根据定义的前缀,输入需要过滤的对象的关键字信息,字符越长匹配精度越高。

约束限制:

prefix和suffix加起来长度最大为1024的字符串。

取值范围:

长度为0~1024的字符串。

默认取值:

不涉及

suffix

String

参数解释:

对象名后缀。用于指定的对象名关键字,根据定义的后缀,输入需要过滤的对象的关键字信息,字符越长匹配精度越高。

约束限制:

prefix和suffix加起来长度最大为1024的字符串。

取值范围:

长度为0~1024的字符串。

默认取值:

不涉及

agency

String

参数解释:

IAM委托名。

约束限制:

被委托方必须包含对OBS的访问权限,赋予的权限必须是DIS服务的DIS Administrator或DIS User。

取值范围:

不涉及

默认取值:

不涉及

响应消息样式

HTTP/1.1 status
Server: OBS
Date: date
Content-Length: length

响应头 (Response Headers)

该请求的响应消息使用公共响应头,具体请参考表1

响应体 (Response Body)

本接口的响应消息中不携带响应体。

错误响应消息

无特殊错误,所有错误已经包含在表2中。

请求示例

PUT /?disPolicy HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:sc2PM13Wlfcoc/YZLK0MwsI2Zpo=
Content-Type: application/json
Content-Length: 1049
Date: Tue, 21 Jul 2020 15:38:30 GMT
{
    "rules": [{
        "id":"event-01",
        "stream": "stream_name",
        "project": "project_id",
        "events": ["ObjectCreated:*", "ObjectRemoved:*"],
        "prefix": "",
        "suffix": "",
        "agency": "dis_agency"
    }]
}

响应示例

HTTP/1.1 201 Created
Server: OBS
Date: Tue, 07 Jul 2020 07:29:13 GMT
Content-Length: 0

相关文档

相关文档