如果您希望实时掌握在 TOS 中的资源变动,可以设置事件通知规则。本文介绍事件通知的背景信息、前提条件及 TOS 支持的事件类型。
TOS 支持将部分事件的变动投递到函数服务。关于函数服务的详细信息,请参见什么是函数服务。
当前仅华北2(北京)、华东2(上海)和亚太东南(柔佛)地域支持事件通知功能。
事件类别 | 事件名称 | TOS 对应接口 | 描述 |
---|---|---|---|
tos:ObjectCreated:* | tos:ObjectCreated:Put | PutObject | 通过简单上传对象后触发。 |
tos:ObjectCreated:Post | PostObject | 通过表单上传对象后触发。 | |
tos:ObjectCreated:Origin | GetObject | 创建回源规则,回源成功上传到 TOS 后触发。 | |
tos:ObjectCreated:Fetch | FetchObject | 拉取对象后触发。 | |
tos:ObjectCreated:Copy | CopyObject | 对象复制成功后触发。 | |
tos:ObjectCreated:CompleteUpload | CompleteUpload | 分片上传提交成功后触发。 | |
tos:ObjectRemoved:* | tos:ObjectRemoved:Delete | DeleteObject | 删除对象后触发(包括批量删除)。 |
tos:ObjectRemoved:DeleteMarkerCreated | DeleteObject | 删除对象生成删除标记后触发。 | |
tos:LifecycleExpiration:* | tos:LifecycleExpiration:Delete | DeleteObject | 通过生命周期规则永久删除对象后触发。 |
tos:LifecycleExpiration:DeleteMarkerCreated | DeleteObject | 通过生命周期规则创建删除标记后触发。 | |
tos:ObjectReplication:* | tos:ObjectReplication:ObjectCreated | - | 通过跨区域复制规则或同区域复制规则生成对象后触发。 |
tos:ObjectReplication:ObjectModified | - | 通过跨区域复制规则或同区域复制规则覆盖对象后触发。 | |
tos:ObjectRestore:* | tos:ObjectRestore:Post | RestoreObject | 创建归档存储、冷归档和深度冷归档恢复任务后触发。 |
tos:ObjectRestore:Completed | RestoreObject | 完成归档存储、冷归档和深度冷归档恢复任务后触发。 | |
tos:LifecycleTransition | tos:LifecycleTransition | - | 使用生命周期管理功能完成对象的存储类型转换后触发。 |
对象存储事件触发的事件通知格式如下所示。
{"events": [ { "eventName":"tos:ObjectCreated:Put", "eventSource":"tos", "eventTime":"2022-08-29T08:50:54Z", "eventVersion":"1.0", "tos":{ "bucket":{ "trn":"trn:tos:::test", "name":"test", "ownerIdentity":"2100000000" }, "object":{ "eTag":"\"cbd8273ce352dfac24d5d65fa3f8****\"", "key":"aa.png", "size":29098, "versionId":"57CE0809CDADB97E****" }, "tosSchemaVersion":"1.0", "ruleId":"testput", "region":"cn-beijing", "requestParameters":{ "sourceIPAddress":"192.160.**.***:*****" }, "responseElements":{ "requestId":"99cb480c7dee50d6630c7dee-ac14****" }, "userIdentity":{ "principalId":"trn:iam::2100000000:user/test" }, } } ] }
参数说明如下。
参数 | 类型 | 示例值 | 描述 | |||
---|---|---|---|---|---|---|
eventName | String | tos:ObjectCreated:Put | 事件通知类型,TOS 支持的事件类型,请参见事件类型。 | |||
eventSource | String | tos | 设置事件通知的消息源,固定为 tos。 | |||
eventTime | String | 2022-08-29T08:50:54Z | 事件产生的时间。使用 ISO-8601 时间表示法。 | |||
eventVersion | String | 1.0 | 事件通知版本号,目前为 1.0。 | |||
tos | bucket | trn | String | trn:tos:::test | Bucket 的唯一标识符,格式为 | |
name | String | test | 存储桶名称。 | |||
ownerIdentity | String | 2100100000 | 创建 Bucket 的火山引擎账号ID。 | |||
object | eTag | String | "cbd8273ce352dfac24d5d65fa3f8****" | 对象的 ETag,deleteMarkerCreate 事件时该参数为空。 | ||
key | String | aa.png | 对象名称。 | |||
size | String | 29098 | 对象大小, deleteMarkerCreate 事件时该参数为0。 | |||
versionId | String | 57CE0809CDADB97E**** | 对象版本 ID,deleteMarkerCreate 事件时,该参数为 deleteMarker 的 ID。 | |||
tosSchemaVersion | String | 1.0 | 此字段域的版本号,目前为 1.0。 | |||
ruleId | String | testput | 设置的事件通知名称。 | |||
region | String | cn-beijing | 存储桶所在的地域。 | |||
requestParameters | sourceIPAddress | String |
| 请求的源 IP 地址。 | ||
responseElements | requestId | String | 99cb480c7dee50d6630c7dee-ac14**** | 请求对应的 Request ID。 | ||
userIdentity | principalId | String | trn:iam::2100000000:user/test | 请求发起者对应的火山引擎账号信息,说明如下:
| ||
archiveEventData | restoreEventData | restorationExpiryTime | String | 2024-02-02T00:00:00Z | 恢复文件后生成的临时副本文件的有效期,采用 ISO-8601 格式。 说明 仅设置事件为 | |
restoreStorageClass | String | ARCHIVE | 恢复的源文件存储类型,取值说明如下:
说明 仅设置事件为 | |||
lifecycleEventData | transitionEventData | destinationStorageClass | String | INTELLIGENT_TIERING | 使用生命周期管理功能转换存储类型时,对象的目标存储类型,取值说明如下:
说明 仅设置事件为 |
具体步骤,请参见设置事件通知。