事件通知
put_notification
本接口用于指定 bucket 上增加通知规则。
运行以下示例前,请先参考初始化完成 BOS Client 初始化,并将示例中的 bucket_name(及其它占位符)替换为实际值。
注意:
- 只有 bucket owner 或者 full control 权限才能获取这个 bucket 的配置。
- 如果不是 bucket owner 则返回 403,如果对应的文件不存在则返回 404。
相关参数的详细解释请参见 PutNotification 接口。
1notifications = list()
2notifications.append(
3 {
4 "resources": [
5 "/"
6 ],
7 "encryption": {
8 "key": "0123456789abcdef0123456789abcdef"
9 },
10 "status": "enabled",
11 "name": "example-rule",
12 "id": "example-rule-id",
13 "appId": "example-app",
14 "events": [
15 "AppendObject",
16 "CompleteMultipartUpload",
17 "CopyObject",
18 "PutObject",
19 "PostObject",
20 "FetchObject",
21 "DeleteObject"
22 ],
23 "apps": [
24 {
25 "eventUrl": "http://www.example.com/event",
26 "id": "example-app",
27 "xVars": "{\"saveUrl\": \"http://www.example.com/ocr\"}"
28 }
29 ]
30 }
31)
32response = bos_client.put_notification(bucket_name, notifications)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
bucket_name |
str / bytes |
是 | 需要增加通知规则的 bucket 名称。 |
notifications |
list[dict] |
是 | 通知规则列表。SDK 会将该参数封装为 {"notifications": notifications} 后提交。 |
config |
BceClientConfiguration |
否 | 可选请求配置。不传时使用客户端初始化配置。 |
notifications 中常用字段说明:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
resources |
list[str] |
是 | 通知规则生效的资源路径,例如 "/" 表示 bucket 下的资源。单条资源最多包含一个通配符。 |
encryption |
dict |
否 | 通知规则的加密配置,可包含 key 字段。 |
status |
str |
是 | 通知规则状态,取值必须为 enabled 或 disabled。 |
name |
str |
否 | 通知规则名称。 |
id |
str |
是 | 通知规则 ID,需非空且在规则列表内唯一。 |
appId |
str |
是 | 接收通知的应用 ID,需非空。 |
events |
list[str] |
是 | 触发通知的事件列表,非空。合法取值见下方说明。 |
apps |
list[dict] |
是 | 应用配置列表,可包含 eventUrl、id、xVars 等字段。 |
events 合法取值(服务端校验,见 bucket/notification/notification_parser.cpp):PutObject、PostObject、AppendObject、CopyObject、CompleteMultipartUpload、FetchObject、DeleteObject、DeleteMultipleObjects、GetObject,以及 ObjectCreateGroup:Origin、ObjectCreateGroup:*、ObjectModifyGroup:*、ObjectRemovedGroup:*、ObjectRestore:Post、ObjectReplication:*、BosLifecycle:Copy 等分组事件。
说明:
每个 bucket 最多可配置 20 条通知规则,超过时服务端返回错误。
返回说明:
调用成功后返回 BceResponse 对象。可通过 response.status_code 查看 HTTP 状态码,通过 response.metadata 查看响应头信息。实际请求成功时,服务端返回 200 OK,响应体为空。
get_notification
本接口用于获取指定 bucket 上的通知规则。
1response = bos_client.get_notification(bucket_name)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
bucket_name |
str / bytes |
是 | 需要获取通知规则的 bucket 名称。 |
config |
BceClientConfiguration |
否 | 可选请求配置。不传时使用客户端初始化配置。 |
返回说明:
调用成功后返回 BceResponse 对象。可通过 response.status_code 查看 HTTP 状态码,通过 response.get_body_map() 获取响应体内容。响应体中包含 notifications 列表,每个元素为一条通知规则配置。
如果指定 bucket 上不存在通知规则,服务端返回 404 NoNotificationConfiguration。
delete_notification
本接口用于删除指定 bucket 上的通知规则。
注意:
该接口为一次性全部删除当前 bucket 下全部规则。
1response = bos_client.delete_notification(bucket_name)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
bucket_name |
str / bytes |
是 | 需要删除通知规则的 bucket 名称。 |
config |
BceClientConfiguration |
否 | 可选请求配置。不传时使用客户端初始化配置。 |
返回说明:
调用成功后返回 BceResponse 对象。可通过 response.status_code 查看 HTTP 状态码,通过 response.metadata 查看响应头信息。实际删除成功时,服务端返回 204 No Content,响应体为空。
评价此篇文章
