plugins
Store 插件
查看 Markdown应用数据目录内的 JSON 键值存储。
理解 Store 插件的 JSON 存储位置、容量限制、权限和并发边界。
Store 插件保存小型 JSON 键值状态,写入应用私有数据目录
app://data/.kasumi/store.json。它不是数据库,不提供查询、索引、事务、迁移或跨设备同步。
需要关系查询时使用 SQL 插件,需要大文件时使用文件系统插件。
| 层级 | 入口 | 责任 |
|---|---|---|
| 前端 API | frontend/src/api/store.ts | JSON 参数守卫和命令封装 |
| 协议清单 | protocol/plugins.json | 五个命令归属 store |
| Windows 插件 | windows/src/plugins/ksm_store_plugin.cpp | JSON 文件读写和进程内串行化 |
| Android 插件 | KSMStorePlugin.kt | 与 Windows 对齐的存储规则 |
| 方法 | 参数 | 返回 |
|---|---|---|
store.get | { key } | { found, value } |
store.set | { key, value } | { updated: true } |
store.delete | { key } | { deleted } |
store.clear | {} | { cleared: true } |
store.keys | {} | { keys },按字典序返回 |
store.clear 删除存储文件;之后读取未命中时返回 found: false 和 value: null。await KSM.store.set({
key: 'profile',
value: {
theme: 'light',
recent: ['home', 'settings']
}
});
const result = await KSM.store.get({ key: 'profile' });
if (result.found) {
console.info(result.value);
}
const keys = await KSM.store.keys();
await KSM.store.delete({ key: 'profile' });| 项 | Windows | Android |
|---|---|---|
| 存储路径 | app://data/.kasumi/store.json | 同一虚拟路径 |
| 单值限制 | 1 MiB | 1 MiB |
| 总量限制 | 16 MiB | 16 MiB |
| 权限 | store | store |
| 持久化 | 应用数据目录 | 应用数据目录 |
| 错误码 | 场景 |
|---|---|
INVALID_ARGS | key 为空或超长、value 缺失、JSON 值非法或超过单值限制 |
PERMISSION_DENIED | 当前请求没有 store 权限 |
IO_ERROR | 存储文件损坏、读取失败、写入失败或总量超限 |
NOT_SUPPORTED | 当前宿主没有注册 store 插件或文件系统服务 |
TIMEOUT / CANCELLED | 请求被超时或取消链路终止 |
KSM.capabilities() 确认 store 权限和命令存在。
评论