最近更新时间:2025-09-01 19:16:57
KS3事件通知功能支持为指定Bucket设置事件通知规则,客户创建规则时,支持传入回调地址,触发事件通知规则后,KS3将事件通知内容将推送至客户的回调地址。
1. 单个规则(Rule)不支持修改,仅支持新增和删除。
2. 事件通知功能仅支持宁夏、俄罗斯区域。
3. 事件通知为邀测功能,如有需要请联系商务或提交工单申请。
4. 仅支持公网推送至客户的回调地址,不支持内网推送。
5. 不支持匿名访问KS3触发事件通知规则,请求KS3如果需要触发事件通知,需要携带签名访问。
6. 不支持跨账号访问触发事件通知规则。
7. 创建事件通知规则成功后,预计5分钟生效。
8. 不同的规则可以设置相同的回调地址,同一个规则也可以同时设置多个不同的回调地址。
9. 两个规则(Rule)如果事件类型一致,则前缀或后缀不允许存在重叠。
使用事件通知功能,需新增KsyunKS3BucketLoggingProcessingRole角色,新增该角色后,针对异常场景导致事件通知内容推送至客户回调地址失败,KS3会将该通知内容以失败列表的方式导出,并每天定时投递至客户的指定桶内。如果没有该角色,最终将导致推送失败列表报告投递失败。
新增角色操作流程如下:
登录IAM控制台,点击【角色】→【新建角色】。
授权实体类型选择【金山云服务】→角色信息选择【服务关联角色】→授信云服务选择【对象存储】→点击【确认信息】。
子账号使用事件通知功能前同样需要该账号具备KsyunKS3BucketLoggingProcessingRole角色,设置流程参考以上主账号操作需进行的权限设置。
子账号操作有关事件通知的每个接口都需要具备对应接口的权限,主账号可以通过空间策略的方式为子账号设置相应权限。
除以上权限外,主账号还需要给子账号授予以下权限,操作流程如下所示:
登录IAM控制台,点击【策略】→【自定义策略】→【新建策略】。
设置策略名称,如keb→设置策略类型为【策略语法】→选择策略模板为【空白模板】。
在编辑策略内容中输入以下策略:
{
"Version": "2015-11-01",
"Statement": [
{
"Effect": "Allow",
"Action": "keb:*",
"Resource": [
"*"
]
}
]
}点击【创建策略】。
点击【子用户】页面→点击对应的子用户名称→选择【关联策略】→点击【添加权限】→选择【自定义策略】→选中设置的策略名称keb→点击【确定】。
事件类别 | 事件名称 | KS3对应接口 | 描述 |
ks3:ObjectCreated:* | ks3:ObjectCreated:PutObject | PUT Object | 调用PUT Object接口上传文件成功后触发,不区分新增上传或覆盖上传。 |
ks3:ObjectCreated:CompleteMultipartUpload | Complete Multipart Upload | 调用Complete Multipart Upload接口上传文件完成后触发,不区分新增上传或覆盖上传。 | |
ks3:ObjectCreated:SyncMirror | —— | 创建同步回源规则,同步回源成功上传到KS3后触发,不区分新增上传或覆盖上传。 | |
ks3:ObjectCreated:AsyncMirror | —— | 创建异步回源规则,异步回源成功上传到KS3后触发,不区分新增上传或覆盖上传。 | |
ks3:ObjectCreated:PostObject | POST Object | 调用POST Object接口表单上传对象后触发,不区分新增上传或覆盖上传。 | |
ks3:ObjectCreated:CopyObject | PUT Object Copy | 调用PUT Object Copy接口上传文件完成后触发,不区分新增上传或覆盖上传。 | |
ks3:ObjectCreated:AppendObject | Append Object | 调用Append Object接口新增或追加文件,不区分新增上传或覆盖上传。 | |
ks3:ObjectCreated:PutFetch | PUT Fetch | 拉取对象上传至KS3成功后触发,不区分新增上传或覆盖上传。 | |
ks3:ObjectCreated:Replication | —— | 通过跨区域复制/同区域复制上传文件完成后触发,不区分新增上传或覆盖上传。 | |
ks3:ObjectCreated:Recover | Recover Object | 调用Recover Object接口将回收站内文件恢复到桶内操作,不区分新增上传或覆盖上传。 | |
ks3:ObjectRemoved:* | ks3:ObjectRemoved:DeleteObject | DELETE Object | 调用DELETE Object接口删除文件后触发。 |
ks3:ObjectRemoved:Lifecycle | —— | 通过生命周期规则删除文件后触发。 | |
ks3:ObjectRemoved:Retention | CLEAR Object | 调用CLEAR Object接口删除回收站内文件成功后触发,不区分调用接口删除或通过回收站规则定时删除。 |
当客户在KS3上进行新增或删除文件等相关操作触发事件通知后,KS3会将事件通知内容以JSON格式推送至客户的回调地址。
推送示例如下所示:
{
"id": "fr4i8td4kb68al7sthmnrmpfllosbs3h",
"source": "kcs:ks3",
"ruleId": "jy_test_nx00001",
"type": "ks3:ObjectCreated:PutObject",
"specversion": "1.0",
"time": "2025-06-24T12:54:09.932 08:00",
"datacontenttype": "application/json",
"subject": "jy-test-nx/21",
"extensions": {
"accountid": "73403574",
"userid": "30542",
"roleid": "",
"region": "NINGXIA",
"eventversion": "1.0"
},
"data": {
"request": {
"sourceIPAddress": "10.232.61.249"
},
"response": {
"requestId": "fr4i8td4kb68al7sthmnrmpfllosbs3h"
},
"ks3": {
"bucket": {
"name": "jy-test-nx",
"ownerid": "73403574"
},
"object": {
"key": "21",
"objectsize": "21",
"etag": "xZHJRA3az9V0Y0jqGv7zjw==",
"position": 21
}
}
}
}推送字段详细说明如下:
参数名称 | 说明 |
|---|---|
id | 事件ID,标识事件的唯一性,与KS3接口请求ID一致。 |
source | 提供事件的服务,固定值: |
ruleId | 客户创建事件通知规则时设置,单个UID内ruleId不能重复。 |
type | 触发事件通知的事件类型。 |
specversion | CloudEvents协议版本,当前版本为 |
time | 事件产生的时间,使用ISO-8601标准时间格式。
|
datacontenttype | 推送事件通知内容的格式,固定取值: |
subject | 指定触发事件通知的对象名称。
|
extensions | 扩展属性,用于存放账号、地域等公共属性。 |
accountid | Bucket拥有者的账号ID(UID)。 |
userid | 发起请求的子账号名称,如果是主账号访问,将不推送该字段。 |
roleid | 请求发起者的角色ID。 |
region | Bucket所在的区域。 |
eventversion | KS3事件data schema版本,固定取值: |
data | KS3操作及资源相关信息。 |
request | 请求相关信息。 |
sourceIPAddress | 请求者的源IP地址。 |
response | 响应相关信息。 |
requestId | 请求ID。 |
ks3 | KS3资源相关信息。 |
bucket | Bucket相关信息。 |
name | Bucket的名称。 |
ownerid | Bucket的创建者对应的账号ID(UID)。 |
object | 对象相关信息。 |
key | 对象的Key。
|
objectsize | 对象的大小。 |
etag | 对象的ETag值。 |
position | 追加上传的起始位置。 仅适用于 |
操作方式 | 文档链接 |
|---|---|
API | |
SDK |
纯净模式
