華為云計(jì)算 云知識(shí) 設(shè)置桶的消息通知配置SetBucketNotification
設(shè)置桶的消息通知配置SetBucketNotification

 

接口說(shuō)明

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

默認(rèn)情況下,您的桶沒(méi)有配置事件通知。這個(gè)時(shí)候桶的通知配置將是一個(gè)空NotificationConfiguration。對(duì)已配置有事件通知的桶,可以通過(guò)添加空NotificationConfiguration元素禁用消息通知功能。

<NotificationConfiguration> </NotificationConfiguration>

目前 對(duì)象存儲(chǔ)服務(wù) (OBS)支持包括簡(jiǎn)單通知服務(wù)( SMN )、 函數(shù)工作流 服務(wù)(FunctionGraph)在內(nèi)的兩種桶通知服務(wù)配置。以SMN為例,當(dāng)OBS接收到配置消息通知的請(qǐng)求后,會(huì)驗(yàn)證指定的消息通知服務(wù)(SMN)主題是否存在及主題策略是否授權(quán)給了 對(duì)象存儲(chǔ) 服務(wù),驗(yàn)證通過(guò)后會(huì)向該主題訂閱者發(fā)送一個(gè)測(cè)試消息通知。

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

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

請(qǐng)求消息中可帶的簽名信息。

Date
 
string header

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

bucket_name
 
string query

請(qǐng)求的桶名稱(chēng)。

notification
 
string query

notification表示請(qǐng)求桶的消息通知配置API。

Body參數(shù)
名稱(chēng) 類(lèi)型 必選 描述
TopicConfiguration
 
Array of TopicConfiguration objects  
FunctionStageConfiguration
 
Array of FunctionStageConfiguration objects  
參數(shù):
TopicConfiguration
名稱(chēng) 類(lèi)型 必選 描述
Id
 
string

每項(xiàng)事件通知配置的唯一標(biāo)識(shí),若是用戶未指定ID,系統(tǒng)將自動(dòng)分配一個(gè)ID。

Filter
 
Filter object

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

Topic
 
string

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

Event
 
string

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

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

刪除對(duì)象操作可以取以下值: ObjectRemoved:Delete ObjectRemoved:DeleteMarkerCreated

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

參數(shù):
TopicConfiguration.Filter
名稱(chēng) 類(lèi)型 必選 描述
Object
 
FilterObject object

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

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

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

Value
 
string

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

參數(shù):
FunctionStageConfiguration
名稱(chēng) 類(lèi)型 必選 描述
Id
 
string

每項(xiàng)事件通知配置的唯一標(biāo)識(shí),若是用戶未指定ID,系統(tǒng)將自動(dòng)分配一個(gè)ID。

Filter
 
Filter object

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

Topic
 
string

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

Event
 
string

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

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

刪除對(duì)象操作可以取以下值: ObjectRemoved:Delete ObjectRemoved:DeleteMarkerCreated

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

FunctionStage
 
string

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

參數(shù):
FunctionStageConfiguration.Filter
名稱(chēng) 類(lèi)型 必選 描述
Object
 
FilterObject object

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

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

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

Value
 
string

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

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

請(qǐng)求成功響應(yīng)消息。

名稱(chēng) 類(lèi)型 必選 描述
Content-Length
 
string

響應(yīng)消息體的字節(jié)長(zhǎng)度。

Connection
 
string

指明與服務(wù)器的連接是長(zhǎng)連接還是短連接。

Date
 
string

OBS系統(tǒng)響應(yīng)的時(shí)間。

ETag
 
string

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

x-obs-id-2
 
string

幫助定位問(wèn)題的特殊符號(hào)。

x-obs-request-id
 
string

由OBS創(chuàng)建來(lái)唯一確定本次請(qǐng)求的值,可以通過(guò)該值來(lái)定位問(wèn)題。

返回碼: 400

請(qǐng)求失敗響應(yīng)消息。 除了公共的錯(cuò)誤碼外,此接口還會(huì)返回一些其他的錯(cuò)誤碼。下面列出本接口的一些常見(jiàn)錯(cuò)誤,以及可能原因。

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

請(qǐng)求失敗響應(yīng)消息。 除了公共的錯(cuò)誤碼外,此接口還會(huì)返回一些其他的錯(cuò)誤碼。下面列出本接口的一些常見(jiàn)錯(cuò)誤,以及可能原因。

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

錯(cuò)誤響應(yīng)消息體XML中錯(cuò)誤響應(yīng)對(duì)應(yīng)的HTTP消息返回碼,具體的錯(cuò)誤碼請(qǐng)參見(jiàn)錯(cuò)誤碼-表2。

Message
 
string

錯(cuò)誤響應(yīng)消息體XML中具體錯(cuò)誤更全面、詳細(xì)的英文解釋,具體的錯(cuò)誤消息請(qǐng)參見(jiàn)錯(cuò)誤碼-表2。

RequestId
 
string

本次錯(cuò)誤請(qǐng)求的請(qǐng)求ID,用于錯(cuò)誤定位。

HostId
 
string

返回該消息的服務(wù)端ID。

Resource
 
string

該錯(cuò)誤相關(guān)的桶或?qū)ο筚Y源。

請(qǐng)求示例
示例 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
點(diǎn)擊 對(duì)象存儲(chǔ)服務(wù) (OBS) SDK, 下載SDK或查看SDK文檔。SDK的安裝、認(rèn)證方式等在SDK文檔中對(duì)應(yīng)語(yǔ)言類(lèi)型的【使用】目錄下。
錯(cuò)誤碼
請(qǐng)參考 錯(cuò)誤碼說(shuō)明。