COS 对象存储
用户可以编写 SCF 函数来处理 COS Bucket 中的对象创建和对象删除事件。COS 可将事件发布给 SCF 函数并将事件数据作为参数来调用该函数。用户可以在 COS Bucket 中添加存储桶通知配置,该配置可标识触发函数的事件类型和希望调用的函数名称等信息。更多细节请看定腾讯 COS 触发器文档。
# scf 单函数触发器
events:
- cos: # cos触发器
parameters:
qualifier: $DEFAULT # 别名配置
bucket: cli-appid.cos.ap-beijing.myqcloud.com
filter:
prefix: filterdir/
suffix: .jpg
events: 'cos:ObjectCreated:*'
enable: true
# multi-scf 多函数触发器
triggers:
- type: cos
function: index
parameters:
name: cos1
bucket: bucket-name
filter:
prefix: filterdir/
suffix: .jpg
events: 'cos:ObjectCreated:*'
enable: true
配置说明
通常 COS 触发器配置包含以下字段,具体的字段和配置方式请参考单函数组件(scf)和多函数组件(multi-scf)的全量配置说明文档。
参数名称 | 必选 | 类型 | 默认值 | 描述 |
---|---|---|---|---|
name | string | 触发器名称, 多函数组件(multi-scf)必填 | ||
qualifier | 否 | string | $DEFAULT |
触发版本,默认为 $DEFAULT ,即 默认流量 |
bucket | 是 | string | 配置的 COS Bucket,仅支持选择同地域下的 COS 存储桶 | |
filter | 是 | CosFilter | COS 文件名的过滤规则 | |
events | 是 | string | COS 的事件类型 | |
enable | 否 | boolean | false |
触发器是否启用 |
COS 触发器入参
在指定的 COS Bucket 发生对象创建或对象删除事件时,会将类似以下的 JSON 格式事件数据发送给绑定的 SCF 函数。
{
"Records": [{
"cos": {
"cosSchemaVersion": "1.0",
"cosObject": {
"url": "http://testpic-1253970026.cos.ap-chengdu.myqcloud.com/testfile",
"meta": {
"x-cos-request-id": "NWMxOWY4MGFfMjViMjU4NjRfMTUyMVxxxxxxxxx=",
"Content-Type": "",
"x-cos-meta-mykey": "myvalue"
},
"vid": "",
"key": "/1253970026/testpic/testfile",
"size": 1029
},
"cosBucket": {
"region": "cd",
"name": "testpic",
"appid": "1253970026"
},
"cosNotificationId": "unkown"
},
"event": {
"eventName": "cos:ObjectCreated:*",
"eventVersion": "1.0",
"eventTime": 1545205770,
"eventSource": "qcs::cos",
"requestParameters": {
"requestSourceIP": "192.168.15.101",
"requestHeaders": {
"Authorization": "q-sign-algorithm=sha1&q-ak=xxxxxxxxxxxxxx&q-sign-time=1545205709;1545215769&q-key-time=1545205709;1545215769&q-header-list=host;x-cos-storage-class&q-url-param-list=&q-signature=xxxxxxxxxxxxxxx"
}
},
"eventQueue": "qcs:0:scf:cd:appid/1253970026:default.printevent.$LATEST",
"reservedInfo": "",
"reqid": 179398952
}
}]
}
数据结构内容详细说明如下:
结构名 | 内容 |
---|---|
Records | 列表结构,可能有多条消息合并在列表中。 |
event | 记录事件信息,包括事件版本、事件源、事件名称、时间、队列信息、请求参数、请求 ID。 |
cos | 记录事件对应的 COS 信息。 |
cosBucket | 记录具体事件发生的 Bucket,包含 Bucket 名称、地域、所属用户 APPID。 |
cosObject | 记录具体事件发生的对象,包含对象文件路径、大小、自定义元数据、访问 URL。 |
在 GitHub 上编辑