Immutable Storage
Authentication
功能概述
为用户提供按 content_key 分组、以毫秒级 time_key 索引的时序数据存储能力,适合记录日志、历史快照、版本化数据等不可变/弱变更场景,提供易用的 API。
- 数据可见性约束:超过 6 个月(180 天)的数据不会出现在查询结果中。
- 数据与字段限制:单条 content_value 与 note 字段最大 2MB;单次请求 items 最多 10 条。
- 支持批量创建或追加
- 支持时间区间查询,内置分页:每页 50 条,使用 next_cursor 继续翻页。
- 支持查询指定 content_key 的全部 time_key,以及按给定 time_key 集合精确获取数据。
- 支持批量删除:可删除某用户全部数据、某个 content_key 下的数据,或某个 content_key + time_key 的单条数据。
API
注意,超过6个月即180天的数据不会显示在结果内
创建/追加
Method & Path
-
POST {domain}/bp/storage/immutable/append
-
POST {domain}/bp/server/user/{user_id}/storage/immutable/append
如果没有key则创建,最多10个
content_value,note 最大 2MB
请求示例:
json
{
"content_key": "name",
"items": [
{
"content_value": "zzb",
"time_key": 1628057604000,
"note1": "xxx",
"note2": "xxx",
"note3": "xxx"
},
{
"content_value": "wzy",
"time_key": 1628057605000
}
]
}
返回示例:
json
{
"success": [
{
"time_key": 1628057604000
},
{
"time_key": 1628057605000
}
],
"failure": [
{
"time_key": 1628057605000,
"error": "xxx"
}
],
"total": 3
}
创建/更新
Method & Path
-
POST {domain}/bp/storage/immutable/save
-
POST {domain}/bp/server/user/{user_id}/storage/immutable/save
有key更新,无key创建,最多10个
请求示例:
json
{
"content_key": "name",
"items": [
{
"content_value": "wzy",
"time_key": 1628057604000,
"note1": "xxx",
"note2": "iii",
"note3": "qqq"
}
]
}
返回示例:
json
{
"created": [
{
"time_key": 1628057604000
}
],
"updated": [
{
"time_key": 1628057605000,
"changed": [
"note1"
]
}
],
"failure": [
{
"time_key": 1628057605000,
"error": "xxx"
}
],
"total": 3
}
获取
Method & Path
-
POST {domain}/bp/storage/immutable/query
-
POST {domain}/bp/server/user/{user_id}/storage/immutable/query
request body
参数 | 类型 | 说明 |
---|---|---|
time_key_start | int | 毫秒级时间戳 |
time_key_end | int | 毫秒级时间戳 |
cursor | int | 前次请求获取的next_cursor,首次请求时为null |
请求示例:
json
{
"content_key": "name",
"time_key_start": 1628057605000,
"time_key_end": 1628057607000,
"cursor": null
}
获取[time_key_start, time_key_end]区间的数据,不传则返回全量。 每页50条,服务器每次查询多取一条作为next_cursor的依据。
返回示例:
json
{
"immutable_storage_items": [
{
"user_id": "xxx",
"content_key": "name",
"time_key": 1628057605000,
"content_value": "zzb",
"note1": "xxx",
"note2": "iii",
"note3": "qqq",
"sys_created_time": "xxx",
"is_deleted": true
}
],
"next_cursor": null
}
next_cursor
下页的游标,null表示无更多数据。
获取指定key的所有time
Method & Path
-
POST {domain}/bp/storage/immutable/time_keys
-
POST {domain}/bp/server/user/{user_id}/storage/immutable/time_keys
请求示例:
json
{
"content_key": "name"
}
返回示例:
json
{
"time_key_set": [
1628057605000,
1628057606000
]
}
获取指定time的数据
Method & Path
-
POST {domain}/bp/storage/immutable/query/time_keys
-
POST {domain}/bp/server/user/{user_id}/storage/immutable/query/time_keys
request body
参数 | 类型 | 说明 |
---|---|---|
content_key | string | |
time_key_set | array | 需要的数据集合(最多50个) |
请求示例:
json
{
"content_key": "name",
"time_key_set": [
1628057605000,
1628057606000
]
}
返回示例:
json
{
"immutable_storage_items": [
{
"user_id": "xxx",
"content_key": "name",
"time_key": 1628057605000,
"content_value": "wzy",
"note1": "xxx",
"note2": "iii",
"note3": "qqq",
"sys_created_time": "xxx",
"is_deleted": true
}
]
}
删除某个用户的所有数据
Method & Path
-
DELETE {domain}/bp/storage/immutable
-
DELETE {domain}/bp/server/user/{user_id}/storage/immutable
返回
{}
删除某个用户的 content_key 数据
Method & Path
-
DELETE {domain}/bp/storage/immutable/content_key/{content_key}
-
DELETE {domain}/bp/server/user/{user_id}/storage/immutable/content_key/{content_key}
返回
{}
删除某个用户的 content_key 下 time_key 数据
Method & Path
-
DELETE {domain}/bp/storage/immutable/content_key/{content_key}/{time_key}
DELETE {domain}/bp/server/user/{user_id}/storage/immutable/content_key/{content_key}/{time_key}
返回
{}