OBS 消息通知 功能能够帮助您对桶的重要的操作及时通知到您,确保您安全、及时知道发生在桶上的关键事件。
默认情况下,您的桶没有配置事件通知。这个时候桶的通知配置将是一个空NotificationConfiguration。对已配置有事件通知的桶,可以通过添加空NotificationConfiguration元素禁用消息通知功能。
<NotificationConfiguration> </NotificationConfiguration>
目前 对象存储服务 (OBS)支持包括简单通知服务( SMN )、 函数工作流 服务(FunctionGraph)在内的两种桶通知服务配置。以SMN为例,当OBS接收到配置消息通知的请求后,会验证指定的消息通知服务(SMN)主题是否存在及主题策略是否授权给了 对象存储 服务,验证通过后会向该主题订阅者发送一个测试消息通知。
为了能成功执行此配置操作,需要确保执行者拥有PutBucketNotification权限。默认情况下只有桶的所有者拥有该权限,但可以通过设置桶策略授权给其他用户。
名称 | 类型 | IN | 必选 | 描述 |
---|---|---|---|---|
Authorization
|
string | header | 是 |
请求消息中可带的签名信息。 |
Date
|
string | header | 否 |
请求发起端的日期和时间,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默认值:无。 条件:如果消息头中带了x-obs-date字段,则可以不带该字段,其他情况下必选。 |
bucket_name
|
string | query | 是 |
请求的桶名称。 |
notification
|
string | query | 是 |
notification表示请求桶的消息通知配置API。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
TopicConfiguration
|
Array of TopicConfiguration objects | 否 | |
FunctionStageConfiguration
|
Array of FunctionStageConfiguration objects | 否 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Id
|
string | 否 |
每项事件通知配置的唯一标识,若是用户未指定ID,系统将自动分配一个ID。 |
Filter
|
Filter object | 否 |
Object的元素,用以保存过滤对象名的一组规则。 |
Topic
|
string | 否 |
事件通知主题的URN,当OBS检测到桶中发生特定的事件后,将会发布通知消息至该主题,可以在消息通知服务主题部分找到具体值。 模板:<Topic>urn:smn:region:project_id:smn_topic</Topic> |
Event
|
string | 否 |
需要发布通知消息的事件类型。 说明:在一个TopicConfiguration、FunctionStageConfiguration配置项中可以添加多个事件类型。 合法值: 上传对象操作可以取以下值: ObjectCreated:Put ObjectCreated:Post ObjectCreated:Copy ObjectCreated:CompleteMultipartUpload 或者使用通配符支持所有上传操作 ObjectCreated:* 删除对象操作可以取以下值: ObjectRemoved:Delete ObjectRemoved:DeleteMarkerCreated 或者使用通配符支持所有删除操作 ObjectRemoved:* |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Object
|
FilterObject object | 否 |
定义过滤规则的元素,该规则用以匹配对象名前缀和后缀。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
FilterRule
|
Array of FilterRule objects | 否 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Name
|
string | 否 |
指定规则按对象名前缀或后缀进行过滤。 |
Value
|
string | 否 |
指定的对象名关键字,根据Name元素定义的前缀或后缀,输入需要过滤的对象的关键字信息,字符越长匹配精度越高,最大可支持1024个字符。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Id
|
string | 否 |
每项事件通知配置的唯一标识,若是用户未指定ID,系统将自动分配一个ID。 |
Filter
|
Filter object | 否 |
Object的元素,用以保存过滤对象名的一组规则。 |
Topic
|
string | 否 |
事件通知主题的URN,当OBS检测到桶中发生特定的事件后,将会发布通知消息至该主题,可以在消息通知服务主题部分找到具体值。 模板:<Topic>urn:smn:region:project_id:smn_topic</Topic> |
Event
|
string | 否 |
需要发布通知消息的事件类型。 说明:在一个TopicConfiguration、FunctionStageConfiguration配置项中可以添加多个事件类型。 合法值: 上传对象操作可以取以下值: ObjectCreated:Put ObjectCreated:Post ObjectCreated:Copy ObjectCreated:CompleteMultipartUpload 或者使用通配符支持所有上传操作 ObjectCreated:* 删除对象操作可以取以下值: ObjectRemoved:Delete ObjectRemoved:DeleteMarkerCreated 或者使用通配符支持所有删除操作 ObjectRemoved:* |
FunctionStage
|
string | 否 |
函数服务中函数的URN,当OBS检测到桶中发生特定的事件后,将会发送消息至函数服务调用执行该函数。 若添加父元素FunctionStageConfiguration,本元素是必选项。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Object
|
FilterObject object | 否 |
定义过滤规则的元素,该规则用以匹配对象名前缀和后缀。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
FilterRule
|
Array of FilterRule objects | 否 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Name
|
string | 否 |
指定规则按对象名前缀或后缀进行过滤。 |
Value
|
string | 否 |
指定的对象名关键字,根据Name元素定义的前缀或后缀,输入需要过滤的对象的关键字信息,字符越长匹配精度越高,最大可支持1024个字符。 |
请求成功响应消息。
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Content-Length
|
string | 否 |
响应消息体的字节长度。 |
Connection
|
string | 否 |
指明与服务器的连接是长连接还是短连接。 |
Date
|
string | 否 |
OBS系统响应的时间。 |
ETag
|
string | 否 |
对象的base64编码的128位MD5摘要。ETag是对象内容的唯一标识,可以通过该值识别对象内容是否有变化。比如上传对象时ETag为A,下载对象时ETag为B,则说明对象内容发生了变化。实际的ETag是对象的哈希值。ETag只反映变化的内容,而不是其元数据。上传的对象或拷贝操作创建的对象,通过MD5加密后都有唯一的ETag。如果通过多段上传对象,则无论加密方法如何,MD5会拆分ETag,此类情况ETag就不是MD5的摘要。 |
x-obs-id-2
|
string | 否 |
帮助定位问题的特殊符号。 |
x-obs-request-id
|
string | 否 |
由OBS创建来唯一确定本次请求的值,可以通过该值来定位问题。 |
请求失败响应消息。 除了公共的错误码外,此接口还会返回一些其他的错误码。下面列出本接口的一些常见错误,以及可能原因。
错误码 | 描述 | HTTP状态码 |
---|---|---|
InvalidArgument | 该错误可能是由于下列原因导致。指定了不支持的event。指定的URN不存在或者填写错误,请确认URN合法。指定的URN中的区域与桶所在的区域不一致,请确保桶所在的区域与URN中的区域一致。指定的过滤规则之间存在互相包含或者重叠。 | 400 Bad Request |
请求失败响应消息。 除了公共的错误码外,此接口还会返回一些其他的错误码。下面列出本接口的一些常见错误,以及可能原因。
错误码 | 描述 | HTTP状态码 |
---|---|---|
AccessDenied | 执行者不是桶的所有者,或者还未被授权PutBucketNotification权限。 | 403 Forbidden |