華為云計算 云知識 設置桶的消息通知配置SetBucketNotification
設置桶的消息通知配置SetBucketNotification

 

接口說明

OBS 消息通知 功能能夠幫助您對桶的重要的操作及時通知到您,確保您安全、及時知道發(fā)生在桶上的關鍵事件。

默認情況下,您的桶沒有配置事件通知。這個時候桶的通知配置將是一個空NotificationConfiguration。對已配置有事件通知的桶,可以通過添加空NotificationConfiguration元素禁用消息通知功能。

<NotificationConfiguration> </NotificationConfiguration>

目前 對象存儲服務 (OBS)支持包括簡單通知服務( SMN )、 函數(shù)工作流 服務(FunctionGraph)在內的兩種桶通知服務配置。以SMN為例,當OBS接收到配置消息通知的請求后,會驗證指定的消息通知服務(SMN)主題是否存在及主題策略是否授權給了 對象存儲 服務,驗證通過后會向該主題訂閱者發(fā)送一個測試消息通知。

為了能成功執(zhí)行此配置操作,需要確保執(zhí)行者擁有PutBucketNotification權限。默認情況下只有桶的所有者擁有該權限,但可以通過設置桶策略授權給其他用戶。

URL
PUT  https://obs.cn-north-4.myhuaweicloud.com/ 
請求參數(shù)
名稱 類型 IN 必選 描述
Authorization
 
string header

請求消息中可帶的簽名信息。

Date
 
string header

請求發(fā)起端的日期和時間,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默認值:無。 條件:如果消息頭中帶了x-obs-date字段,則可以不帶該字段,其他情況下必選。

bucket_name
 
string query

請求的桶名稱。

notification
 
string query

notification表示請求桶的消息通知配置API。

Body參數(shù)
名稱 類型 必選 描述
TopicConfiguration
 
Array of TopicConfiguration objects  
FunctionStageConfiguration
 
Array of FunctionStageConfiguration objects  
參數(shù):
TopicConfiguration
名稱 類型 必選 描述
Id
 
string

每項事件通知配置的唯一標識,若是用戶未指定ID,系統(tǒng)將自動分配一個ID。

Filter
 
Filter object

Object的元素,用以保存過濾對象名的一組規(guī)則。

Topic
 
string

事件通知主題的URN,當OBS檢測到桶中發(fā)生特定的事件后,將會發(fā)布通知消息至該主題,可以在消息通知服務主題部分找到具體值。 模板:<Topic>urn:smn:region:project_id:smn_topic</Topic>

Event
 
string

需要發(fā)布通知消息的事件類型。 說明:在一個TopicConfiguration、FunctionStageConfiguration配置項中可以添加多個事件類型。 合法值: 上傳對象操作可以取以下值: ObjectCreated:Put ObjectCreated:Post ObjectCreated:Copy ObjectCreated:CompleteMultipartUpload

或者使用通配符支持所有上傳操作 ObjectCreated:*

刪除對象操作可以取以下值: ObjectRemoved:Delete ObjectRemoved:DeleteMarkerCreated

或者使用通配符支持所有刪除操作 ObjectRemoved:*

參數(shù):
TopicConfiguration.Filter
名稱 類型 必選 描述
Object
 
FilterObject object

定義過濾規(guī)則的元素,該規(guī)則用以匹配對象名前綴和后綴。

參數(shù):
TopicConfiguration.Filter.Object
名稱 類型 必選 描述
FilterRule
 
Array of FilterRule objects  
參數(shù):
TopicConfiguration.Filter.Object.FilterRule
名稱 類型 必選 描述
Name
 
string

指定規(guī)則按對象名前綴或后綴進行過濾。

Value
 
string

指定的對象名關鍵字,根據(jù)Name元素定義的前綴或后綴,輸入需要過濾的對象的關鍵字信息,字符越長匹配精度越高,最大可支持1024個字符。

參數(shù):
FunctionStageConfiguration
名稱 類型 必選 描述
Id
 
string

每項事件通知配置的唯一標識,若是用戶未指定ID,系統(tǒng)將自動分配一個ID。

Filter
 
Filter object

Object的元素,用以保存過濾對象名的一組規(guī)則。

Topic
 
string

事件通知主題的URN,當OBS檢測到桶中發(fā)生特定的事件后,將會發(fā)布通知消息至該主題,可以在消息通知服務主題部分找到具體值。 模板:<Topic>urn:smn:region:project_id:smn_topic</Topic>

Event
 
string

需要發(fā)布通知消息的事件類型。 說明:在一個TopicConfiguration、FunctionStageConfiguration配置項中可以添加多個事件類型。 合法值: 上傳對象操作可以取以下值: ObjectCreated:Put ObjectCreated:Post ObjectCreated:Copy ObjectCreated:CompleteMultipartUpload

或者使用通配符支持所有上傳操作 ObjectCreated:*

刪除對象操作可以取以下值: ObjectRemoved:Delete ObjectRemoved:DeleteMarkerCreated

或者使用通配符支持所有刪除操作 ObjectRemoved:*

FunctionStage
 
string

函數(shù)服務中函數(shù)的URN,當OBS檢測到桶中發(fā)生特定的事件后,將會發(fā)送消息至函數(shù)服務調用執(zhí)行該函數(shù)。 若添加父元素FunctionStageConfiguration,本元素是必選項。

參數(shù):
FunctionStageConfiguration.Filter
名稱 類型 必選 描述
Object
 
FilterObject object

定義過濾規(guī)則的元素,該規(guī)則用以匹配對象名前綴和后綴。

參數(shù):
FunctionStageConfiguration.Filter.Object
名稱 類型 必選 描述
FilterRule
 
Array of FilterRule objects  
參數(shù):
FunctionStageConfiguration.Filter.Object.FilterRule
名稱 類型 必選 描述
Name
 
string

指定規(guī)則按對象名前綴或后綴進行過濾。

Value
 
string

指定的對象名關鍵字,根據(jù)Name元素定義的前綴或后綴,輸入需要過濾的對象的關鍵字信息,字符越長匹配精度越高,最大可支持1024個字符。

返回參數(shù)
返回碼: 200

請求成功響應消息。

名稱 類型 必選 描述
Content-Length
 
string

響應消息體的字節(jié)長度。

Connection
 
string

指明與服務器的連接是長連接還是短連接。

Date
 
string

OBS系統(tǒng)響應的時間。

ETag
 
string

對象的base64編碼的128位MD5摘要。ETag是對象內容的唯一標識,可以通過該值識別對象內容是否有變化。比如上傳對象時ETag為A,下載對象時ETag為B,則說明對象內容發(fā)生了變化。實際的ETag是對象的哈希值。ETag只反映變化的內容,而不是其元數(shù)據(jù)。上傳的對象或拷貝操作創(chuàng)建的對象,通過MD5加密后都有唯一的ETag。如果通過多段上傳對象,則無論加密方法如何,MD5會拆分ETag,此類情況ETag就不是MD5的摘要。

x-obs-id-2
 
string

幫助定位問題的特殊符號。

x-obs-request-id
 
string

由OBS創(chuàng)建來唯一確定本次請求的值,可以通過該值來定位問題。

返回碼: 400

請求失敗響應消息。 除了公共的錯誤碼外,此接口還會返回一些其他的錯誤碼。下面列出本接口的一些常見錯誤,以及可能原因。

錯誤碼 描述 HTTP狀態(tài)碼
InvalidArgument 該錯誤可能是由于下列原因導致。指定了不支持的event。指定的URN不存在或者填寫錯誤,請確認URN合法。指定的URN中的區(qū)域與桶所在的區(qū)域不一致,請確保桶所在的區(qū)域與URN中的區(qū)域一致。指定的過濾規(guī)則之間存在互相包含或者重疊。 400 Bad Request
返回碼: 403

請求失敗響應消息。 除了公共的錯誤碼外,此接口還會返回一些其他的錯誤碼。下面列出本接口的一些常見錯誤,以及可能原因。

錯誤碼 描述 HTTP狀態(tài)碼
AccessDenied 執(zhí)行者不是桶的所有者,或者還未被授權PutBucketNotification權限。 403 Forbidden
名稱 類型 必選 描述
Code
 
string

錯誤響應消息體XML中錯誤響應對應的HTTP消息返回碼,具體的錯誤碼請參見錯誤碼-表2。

Message
 
string

錯誤響應消息體XML中具體錯誤更全面、詳細的英文解釋,具體的錯誤消息請參見錯誤碼-表2。

RequestId
 
string

本次錯誤請求的請求ID,用于錯誤定位。

HostId
 
string

返回該消息的服務端ID。

Resource
 
string

該錯誤相關的桶或對象資源。

請求示例
示例 1
 
"/?notification"
 
"PUT /?notification HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: WED, 01 Jul 2015 03:15:45 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:uRTt8YTkAqJCUfWfYkveEcIGAC0=\nContent-Length: 538\n\n<NotificationConfiguration> \n <TopicConfiguration> \n <Id>ConfigurationId</Id> \n <Filter>\n <Object>\n <FilterRule>\n <Name>prefix</Name>\n <Value>object</Value>\n </FilterRule>\n <FilterRule>\n <Name>suffix</Name>\n <Value>txt</Value>\n </FilterRule>\n </Object> \n </Filter> \n <Topic>urn:smn:cn-east-3:4b29a3cb5bd64581bda5714566814bb7:tet555</Topic> \n <Event>ObjectCreated:Put</Event> \n </TopicConfiguration>\n</NotificationConfiguration>\n"
SDK
點擊 對象存儲服務 (OBS) SDK, 下載SDK或查看SDK文檔。SDK的安裝、認證方式等在SDK文檔中對應語言類型的【使用】目錄下。
錯誤碼
請參考 錯誤碼說明。