设置桶的消息通知配置
功能介绍
OBS消息通知功能能够帮助您对桶的重要的操作及时通知到您,确保您安全、及时知道发生在桶上的关键事件。
默认情况下,您的桶没有配置事件通知。这个时候桶的通知配置将是一个空NotificationConfiguration。对已配置有事件通知的桶,可以通过添加空NotificationConfiguration元素禁用消息通知功能。
        1 2  | 
       
        <NotificationConfiguration> </NotificationConfiguration>  | 
      
当 OBS 接收到配置消息通知的请求后,会验证指定的消息通知服务(SMN)主题是否存在及主题策略是否授权给了对象存储服务,验证通过后会向该主题订阅者发送一个测试消息通知。
为了能成功执行此配置操作,需要确保执行者拥有PutBucketNotification权限。默认情况下只有桶的所有者拥有该权限,但可以通过设置桶策略授权给其他用户。
请求消息样式
        1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27  | 
       
        PUT /?notification HTTP/1.1 Host: bucketname.obs.region.example.com Date: date Authorization: authorization string <NotificationConfiguration> <TopicConfiguration> <Id>ConfigurationId</Id> <Filter> <Object> <FilterRule> <Name>prefix</Name> <Value>prefix-value</Value> </FilterRule> <FilterRule> <Name>suffix</Name> <Value>suffix-value</Value> </FilterRule> </Object> </Filter> <Topic>TopicARN</Topic> <Event>event-type</Event> <Event>event-type</Event> ... </TopicConfiguration> ... </NotificationConfiguration>  | 
      
请求消息参数
该请求消息中不使用消息参数。
请求消息头
该请求使用公共消息头,具体参见表3。
请求消息元素
在此请求中,需要在请求的消息体中配置桶的通知,通知的配置信息以XML格式上传。具体的配置元素如表1描述。
| 
        名称  | 
      
        描述  | 
      
        是否必选  | 
     ||||
|---|---|---|---|---|---|---|
| 
        NotificationConfiguration  | 
      
        配置桶事件通知的根元素,如果子元素为空,说明消息通知功能处于关闭状态。 类型:Container 父元素:无 子元素:0个或多个TopicConfiguration,  | 
      
        是  | 
     ||||
| 
        TopicConfiguration  | 
      
        配置事件通知主题的元素。 类型:Container 父元素:NotificationConfiguration 子元素:Id,Filter,Topic,一个或多个Event  | 
      
        否  | 
     ||||
| 
        Topic  | 
      
        事件通知主题的URN,当OBS检测到桶中发生特定的事件后,将会发布通知消息至该主题,可以在消息通知服务主题部分找到具体值。 类型:String 父元素:TopicConfiguration 模板: 
 示例: 
  | 
      
        如果是父元素TopicConfiguration添加后,本元素是必选项  | 
     ||||
| 
        Id  | 
      
        每项事件通知配置的唯一标识,如果是用户未指定ID,系统将自动分配一个ID。 类型:String 父元素:TopicConfiguration,  | 
      
        否  | 
     ||||
| 
        Filter  | 
      
        Object的元素,用以保存过滤对象名的一组规则。 类型:Container 父元素:TopicConfiguration, 子元素: Object  | 
      
        否  | 
     ||||
| 
        Object  | 
      
        定义过滤规则的元素,该规则用以匹配对象名前缀和后缀。 类型:Container 父元素:Filter 子元素:一个或者多个FilterRule  | 
      
        否  | 
     ||||
| 
        FilterRule  | 
      
        定义过滤规则键值对的元素。 类型:Container 父元素:Object 子元素:Name,Value  | 
      
        否  | 
     ||||
| 
        Name  | 
      
        指定规则按对象名前缀或后缀进行过滤。 类型:String 父元素:FilterRule 合法值:prefix或者suffix  | 
      
        否  | 
     ||||
| 
        Value  | 
      
        指定的对象名关键字,根据Name元素定义的前缀或后缀,输入需要过滤的对象的关键字信息,字符越长匹配精度越高,最大可支持1024个字符。 类型:String 父元素:FilterRule  | 
      
        否  | 
     ||||
| 
        Event  | 
      
        需要发布通知消息的事件类型。 
         说明: 
         
       在一个TopicConfiguration,配置项中可以添加多个事件类型。 类型:String 合法值: 上传对象操作可以取以下值: 
 或者使用通配符支持所有上传操作 
 删除对象操作可以取以下值: 
 或者使用通配符支持所有删除操作 
 父元素:TopicConfiguration,  | 
      
        如果是父元素TopicConfiguration,添加后,本元素是必选项  | 
     
响应消息样式
        1 2 3 4  | 
       
        HTTP/1.1 status_code Date: date Content-Length: length Content-Type: type  | 
      
响应消息头
该请求的响应消息使用公共消息头,具体请参考表1。
响应消息元素
该请求的响应消息中不带有响应元素。
错误响应消息
当用户执行调用本接口时,系统将会检查NotificationConfiguration元素的有效性,以及配置是否有效。中列出本接口的一些常见错误,以及可能原因。
| 
        错误码  | 
      
        描述  | 
      
        HTTP状态码  | 
     
|---|---|---|
| 
        InvalidArgument  | 
      
        该错误可能是由于下列原因导致。 
  | 
      
        400 Bad Request  | 
     
| 
        AccessDenied  | 
      
        执行者不是桶的所有者,或者还未被授权PutBucketNotification权限。  | 
      
        403 Forbidden  | 
     
请求示例
        1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27  | 
       
        PUT /?notification HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.example.com Accept: */* Date: WED, 01 Jul 2015 03:15:45 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:uRTt8YTkAqJCUfWfYkveEcIGAC0= Content-Length: 538 <NotificationConfiguration> <TopicConfiguration> <Id>ConfigurationId</Id> <Filter> <Object> <FilterRule> <Name>prefix</Name> <Value>object</Value> </FilterRule> <FilterRule> <Name>suffix</Name> <Value>txt</Value> </FilterRule> </Object> </Filter> <Topic>urn:smn:region:4b29a3cb5bd64581bda5714566814bb7:tet555</Topic> <Event>ObjectCreated:Put</Event> </TopicConfiguration> </NotificationConfiguration>  | 
      
响应示例
        1 2 3 4 5 6  | 
       
        HTTP/1.1 200 OK Server: OBS x-obs-request-id: 9046000001643C8E80C19FAC4D8068E3 x-obs-id-2: 32AAAQAAEAABSAAkgAIAABAAAQAAEAABCTFAxJPTib3GkcQ7nVVs4C8Z6NNcfVDu Date: WED, 01 Jul 2015 03:15:46 GMT Content-Length: 0  |