Bucket 管理

 

事件通知

更新时间 2023-09-06

功能介绍

事件通知 (Bucket Notification) 服务,它提供了一种机制,使得当某些指定的事件在 QingStor 对象存储中发生时,能够触发通知或者事件处理。

用户可以通过配置该功能,规定当指定对象被删除时,系统发送通知;或者当某图片上传完成时,对该图片进行相关处理,并将处理结果发送至指定 URL 等。

使用限制

  • 配置事件通知规则的用户必须是 Bucket 的所有者。

  • 若设置多个事件通知规则,QingStor 对象存储会对每条规则逐一进行检查匹配,最终将可能触发多个事件。

操作步骤

  1. 进入 QingStor 对象存储的主页面,选择待设置事件通知的 Bucket,点击右键 > 设置

  1. 进入 Bucket 设置页面,点击事件通知 > 添加通知

  1. 在弹出的对话框内,根据页面提示信息,填写相关参数后,点击提交按钮:

说明:

  • 处理方式:可选值为 推送通知图片处理

    • 处理方式 设置为 推送通知 时,表示某项操作完成后,需触发通知用户。所以 事件类型创建对象完成删除对象完成终止分段上传完成分段上传

    • 处理方式 设置为 图片处理 时,表示某项操作完成后,需触发相应的图片处理,并将处理结果发送给用户。所以设置完 事件类型创建对象完成完成分段上传 后,需要对图片处理的参数进行设定。

  • ID: 事件通知规则的标识符。由字母,数字或者符号组成,用来描述通知的用途。

  • 对象匹配规则: 用于设置需要设置事件通知的文件名的规则。匹配规则是基于 Glob Pattern 的模式。为空时表示匹配所有对象。

  • 通知 URL:接收 推送通知图片处理 结果的 URL。

  • 自定义参数:用于设置图片处理的相关参数,以及处理后的结果存储 Bucket 以及相应的对象名。或者提供给推送通知的自定义参数。

  1. 成功创建的事件通知,列表显示:

  1. 如需删除相应的事件通知规则,可选择相应的规则,并点击删除按钮:

  1. 弹出对话框,确认无误后,点击确认按钮:

  1. 成功删除的事件通知规则,不再列表显示:

消息格式

当触发事件通知时,QingStor 对象存储发出的消息格式如下:

{
    "events": [
        {
            "event_source": string,
            "event_version": string,
            "event_type": string,
            "event_time": string,
            "zone_id": string,
            "user_identify": {
                "principal_id": string
            },
            "response_elements": {
                "request_id": string
            },
            "qingstor": {
                "schema_version": string,
                "notification_id": string,
                "bucket": {
                    "name": string
                },
                "object": {
                    "name": string,
                    "etag": string,
                    "size": int,
                }
            }
        }
    ]
}

各字段说明如下:

字段名 类型 说明 是否必须
event_source string 事件来源,目前固定为 qingstor
event_version string 事件版本,目前为 1.0
event_type string 事件类型,可选值为:
1.创建对象完成:create_object
2.删除对象完成:delete_object
3.完成分段上传:complete_upload
4.终止分段上传:abort_upload
event_time string 事件时间,ISO-8601 格式的时间
zone_id string 事件关联的 Zone ID
user_identify object user_identify 配置
user_identify.principal_id string 用户 ID,如 usr-xxxx
response_elements object response_elements 的配置
response_elements.request_id string 发起该事件的请求 ID
qingstor object QingStor 配置
qingstor.schema_version string QingStor Schema 的版本
qingstor.notification_id string 相关联的事件通知规则的 ID
qingstor.bucket object 该事件所描述 Object 的所在 Bucket 信息
qingstor.bucket.name string 该事件所描述 Object 的所在 Bucket 名称
qingstor.object object 该事件所描述 Object 信息
qingstor.object.name string 该事件所描述 Object 名
qingstor.object.etag string 该事件所描述 Object 的 Etag
qingstor.object.size int 该事件所描述 Object 的 Size

示例:

{
    "events": [
        {
            "event_source": "qingstor",
            "event_version": "1.0",
            "event_type": "create_object",
            "event_time": "2021-08-31T06:25:46.000Z",
            "zone_id": "gamma",
            "user_identify": {
                "principal_id": "usr-iks7Beds"
            },
            "response_elements": {
                "request_id": "45b47b6a30678cb2"
            },
            "qingstor": {
                "schema_version": "1.0",
                "notification_id": "mp4-notify",
                "bucket": {
                    "name": "max-test2"
                },
                "object": {
                    "name": "abc/5.mp4",
                    "etag": "10c918b1d01aea85864ee65d9e0c2305",
                    "size": 9840497
                }
            }
        }
    ]
}

相关API

Bucket Replication API 见 API 文档:

操作 API 说明
设置 Bucket Notification PUT Bucket Notification 用于设置 Bucket 事件通知规则
获取 Bucket Notification GET Bucket Notification 用于获取已有的 Bucket 事件通知规则
删除 Bucket Notification DELETE Bucket Notification 用于删除已经设置的事件通知规则
这篇文档解决了您的问题吗?
0
0