该接口用于设置 Bucket 的事件通知及处理策略。事件通知提供了一种机制,使得当某些指定的事件在 Bucket 中发生时,会触发通知或者事件处理。

使用说明

  • QingStor 对象存储定义只有 Bucket 的所有者才能调用该 API。

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

请求语法

PUT /?notification HTTP/1.1
Host: <bucket-name>.pek3a.qsstor.com
Date: <date>
Authorization: <authorization-string>
{
    "notifications": [
        {
            "id": <notification_id>,
            "event_types": [
                <event_type>
            ],
            "cloudfunc": <cloudfunc>,
            "cloudfunc_args": {
                <key1>: <value2>,
                <key2>: <value2>,
        ...
            },
            "notify_url": <url>
        }
    ]
}

请求参数

无。

请求头

此接口仅包含公共请求头。关于公共请求头的更多信息,请参见公共请求头

请求消息体

调用该 API 需携带如请求语法中的 Json 消息体。该消息体各字段说明如下:

名称 类型 说明 是否必须

notifications

Array

Bucket 的事件通知配置规则。各配置说明如下。

id

String

规则的标识符。

event_types

Array

事件的类型,当该类型的事件发生时,对应的操作被触发。可设定的值如下:
- create_object: 创建对象完成
- delete_object: 删除对象完成
- abort_multipart: 终止分段上传
- complete_multipart: 完成分段上传

object_filters

List or String

对象名匹配规则。

cloudfunc

String

事件处理云服务,接收通知中触发的事件并进行处理。目前支持:

  • tupu-porn: 图谱鉴黄服务

  • notifier: 通知服务,将 QingStor 事件推送到 notify_url

  • image: 图片基本处理服务

notify_url

String

接受通知事件处理结果的 URL。当事件处理完成后,其结果将会以 POST 方式向该 URL 发送。若 POST 超时,QingStor 对象存储将会重试。目前超时时间为 5s,重试间隔为 1s。

说明

当用户设置 cloudfuncimage 时,cloudfunc_args 参数有效,其键值说明如下。QingStor 对象存储将按照指定的图片处理规则对图片进行处理,并将处理结果另存回 QingStor 对象存储的 Bucket。

名称 类型 说明 是否必须

action

String

图片的具体操作参数。

key_prefix

String

处理结果存回 QingStor 对象存储的 Bucket 的对象名称前缀,默认为 gen

key_seprate

String

分隔符,默认为 _。处理结果的对象名为: key_prefix + key_seprate + origin_object

save_bucket

String

处理结果存回 QingStor 对象存储的目前 Bucket 名称,默认为当前对象所在的 Bucket

响应头

此接口仅包含公共响应头。关于公共响应头的更多信息,请参见公共响应头

错误码

错误码 错误描述 HTTP 状态码

OK

成功设置 Bucket 事情通知

200

其他错误码可参考错误码列表

示例

请求示例

PUT /?notification HTTP/1.1
Host: <bucket-name>.pek3a.qsstor.com
Date: <date>
Authorization: <authorization-string>
Content-Length: 125
{
    "notifications": [
        {
            "cloudfunc": "tupu-porn",
            "event_types": [
                "create_object"
            ],
            "id": "notificaion-1",
            "object_filters": [
                "*"
            ],
            "notify_url": "http://user_notify_url"
        }
    ]
}

响应示例

HTTP/1.1 200 OK
Server: QingStor
Date: Sun, 16 Aug 2015 09:05:00 GMT
Content-Length: 0
Connection: close
x-qs-request-id: aa08cf7a43f611e5886952542e6ce14b