Skip to content

Immutable Storage

Authentication

参考接入 BytePower

功能概述

为用户提供按 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_startint毫秒级时间戳
time_key_endint毫秒级时间戳
cursorint前次请求获取的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_keystring
time_key_setarray需要的数据集合(最多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}

返回

{}

京ICP备19011570号-2