全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

GET Bucket Notification

最近更新时间:2025-09-17 15:39:21

该接口用于获取指定Bucket设置的事件通知规则,调用该接口的用户必须是桶的拥有者或具有ks3:GetBucketNotification权限。

请求语法

GET /?notification HTTP/1.1
Host: {BucketName}.{endpoint}
Date: {date}
Authorization: {SignatureValue}

请求头

该接口仅使用常用请求头部

请求体

该接口不使用请求体。

响应头

该接口仅返回常用响应头

响应体

一段描述事件通知规则的JSON:

{
  "Notifications": [
    {
      "RuleId": "testNotification1",
      "Method": "PUT",
      "Events": [
        "ks3:ObjectCreated:PutObject",
        "ks3:ObjectCreated:PostObject"
      ],
      "Resources": [
        {
          "Prefix": "",
          "Suffix": ""
        }
      ],
      "Destinations": [
        {
          "DestType": "Endpoint",
          "CallbackUrl": "http://****"
        },
        {
          "DestType": "Endpoint",
          "CallbackUrl": "http://****"
        }
      ],
      "Report": {
        "ReportType": "failed",
        "Enabled": "true",
        "Bucket": "bucketname",
        "Prefix": "prefixname"
      }
    },
    {
      "RuleId": "testNotification2",
      "Method": "POST",
      "Events": [
        "ks3:ObjectCreated:SyncMirror",
        "ks3:ObjectCreated:AsyncMirror"
      ],
      "Resources": [
        {
          "Prefix": "prefix1",
          "Suffix": "suffix1"
        },
        {
          "Prefix": "prefix2",
          "Suffix": "suffix2"
        }
      ],
      "Destinations": [
        {
          "DestType": "Endpoint",
          "CallbackUrl": "http://****"
        },
        {
          "DestType": "Endpoint",
          "CallbackUrl": "http://****"
        }
      ],
      "Report": {
        "ReportType": "failed",
        "Enabled": "true",
        "Bucket": "bucketname",
        "Prefix": "prefixname"
      }
    }
  ]
}

响应体内相关元素的具体描述如下:

名称

说明

Notifications

事件通知规则信息。

每个Bucket最多可同时配置10个事件通知规则。

RuleId

设置事件通知规则名称(单个UID内唯一),命名规范如下:

  • 父节点:Notifications

RuleId的命名规范如下:

1. 单个UID下创建的规则名称不能重复,重复设置就会覆盖。

2. 长度不能超过32个字符。

3. 必须以小写字母开头 ([a-z]),后面可以跟字母、数字或下划线 ([a-zA-Z0-9_]{0,31})。

Method

事件通知内容推送至客户端地址的方式,取值如下:

  • POST(默认)

  • PUT

Events

设置需要触发消息通知的事件类型。

  • 父节点:Notifications

1. 单个规则支持选择多个事件类型。

2. KS3支持的事件通知类型请参见文档:事件通知

Resources

设置需要触发事件通知的对象过滤规则。支持设置前缀(Prefix)、后缀(Suffix),即符合前后缀要求的文件才会触发事件通知规则。

  • 父节点:Notifications

1. 如果同时设置了前缀与后缀规则,则事件需要同时满足二者,才会触发事件通知。

2. 如果前后缀均未设置,则会匹配存储桶内所有对象。

3. 单个规则(Rule)的路径不允许有重叠。

4. 单条规则(Rule)支持最多同时设置5个触发路径。

Prefix

设置符合规则的对象前缀。

  • 父节点:Resources

  • 取值:0-1024字节

1. 当不填写Prefix和Suffix时,表示对整个桶内的文件均设置事件通知规则。

2. 如果要匹配Bucket内下名称为examplefolder目录中的全部对象,则前缀填写为examplefolder/,后缀(Suffix)置空即可。

Suffix

设置符合规则的对象后缀。

  • 父节点:Resources

  • 取值:0-1024字节

如果要匹配Bucket内所有名称以.jpg结尾的对象,则前缀(Prefix)置空,后缀(Suffix)填写为.jpg即可

Destinations

包含回调地址信息的容器。

  • 父节点:Notifications

  • 子节点:DestType、CallbackUrl

单个规则(Rule)内,最多支持填写5个回调地址。

DestType

回调地址信息的类型,固定取值:EndPoint。

  • 父节点:Destinations

CallbackUrl

回调地址。当触发事件通知时,KS3会以回调方式将事件通知消息体以JSON格式推送至该地址。

  • 父节点:Destinations

1. 支持HTTP或HTTPS。

2. 支持填写IP+端口号。示例:http://198.51.100.1:8080

3. 支持填写域名地址。示例:http://test.com

4. 支持填写带参数地址。示例:https://ip:port/oss/sync/{id}?ak=xxxx

Report

导出推送失败列表报告。

  • 父节点:Notifications

1. 当触发事件通知规则时,KS3会将事件通知内容推送至客户回调地址内,推送成功后KS3接口会返回响应头x-kss-eventBridge-status ,该响应头的Value值为Base64编码,解码后的内容为Code: Success

2. 当触发事件通知规则时,由于网络抖动或其他异常场景导致事件通知内容推送至客户回调地址失败,KS3接口会返回响应头x-kss-eventBridge-status ,该响应头的Value值为Base64编码,解码后的内容为Code: Fail

3. 针对异常场景导致事件通知内容推送至客户回调地址失败,KS3会将该通知内容以失败列表的方式导出并每天定时投递至客户的指定桶内内。

ReportType

推送的报告类型,仅支持导出推送失败的列表报告,固定值failed。

  • 父节点:Report

Enabled

是否导出并投递失败列表报告,固定取值:true。

  • 父节点:Report

Bucket

推送失败列表报告投递的桶名称。

  • 父节点:Report

Prefix

推送失败列表报告投递的目录名称。

  • 取值范围:0-1024字节

  • 父节点:Report

如果Prefix不存在,KS3将自动创建该名称的Prefix。

示例

请求示例

GET /?notification HTTP/1.1
Host: ks3-example.ks3-cn-beijing.ksyuncs.com
Date: Wed, 01 Mar 2016 12:00:00 GMT
Authorization: authorization string

响应示例

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 312
Connection: keep-alive
Date: Wed, 16 Aug 2017 12:23:54 GMT
Server: KS3
x-kss-request-id: NTk5NDM5NWFfMjQ4OGY3Xzc3NGRf****

{
  "Notifications": [
    {
      "RuleId": "testNotification1",
      "Method": "PUT",
      "Events": [
        "ks3:ObjectCreated:PutObject",
        "ks3:ObjectCreated:PostObject"
      ],
      "Resources": [
        {
          "Prefix": "",
          "Suffix": ""
        }
      ],
      "Destinations": [
        {
          "DestType": "Endpoint",
          "CallbackUrl": "http://****"
        },
        {
          "DestType": "Endpoint",
          "CallbackUrl": "http://****"
        }
      ],
      "Report": {
        "ReportType": "failed",
        "Enabled": "true",
        "Bucket": "bucketname",
        "Prefix": "prefixname"
      }
    },
    {
      "RuleId": "testNotification2",
      "Method": "POST",
      "Events": [
        "ks3:ObjectCreated:SyncMirror",
        "ks3:ObjectCreated:AsyncMirror"
      ],
      "Resources": [
        {
          "Prefix": "prefix1",
          "Suffix": "suffix1"
        },
        {
          "Prefix": "prefix2",
          "Suffix": "suffix2"
        }
      ],
      "Destinations": [
        {
          "DestType": "Endpoint",
          "CallbackUrl": "http://****"
        },
        {
          "DestType": "Endpoint",
          "CallbackUrl": "http://****"
        }
      ],
      "Report": {
        "ReportType": "failed",
        "Enabled": "true",
        "Bucket": "bucketname",
        "Prefix": "prefixname"
      }
    }
  ]
}

报错

状态码(Status)

错误码(Code)

描述

404 Not Found

NoSuchBucketNotification

桶事件通知规则不存在

403 Forbidden

AccessDenied

缺少权限

404 Not Found

NoSuchBucket

桶不存在

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈