Skip to content

实例二进制缓存 ​

缓存用于可重建的图片、音频或计算结果,不能保存游戏进度。宿主可以随时淘汰、清理或在损坏后重建,读取未命中属于正常结果。它与实例存档、布局、配置和包回退独立;正常退出后允许复用仍有效缓存,但不保证保留。

接口与边界 ​

  • cache.get {key} 返回 {found,bodyBase64},未命中时 bodyBase64 为 null。
  • cache.put {key,bodyBase64} 返回 {},原子替换当前实例的同名项。
  • cache.remove {key}、cache.clear {} 返回 {},幂等清理当前实例。

key 为首字母是 ASCII 字母的 1–64 个字母、数字、下划线或短横线。二进制使用标准 Base64,单项最多 1 MiB;不是任意路径、文件 URL 或可执行资源。更大的资产沿用 files / assets / network 的范围读取,不把本接口扩展成无限消息流。

每实例最多 16 项 / 8 MiB,每安装 64 项 / 32 MiB,全宿主 256 项 / 128 MiB,超过容量先淘汰最近少用项。最近使用顺序在本次运行内更新,重启按记录时间近似排序;写入七天后失效,不因读取延长有效期。通过参数校验的 put 每分钟每安装 30 次、全局 120 次,提交失败也计入尝试额度。额度按解码字节计,磁盘采用规范 Base64,每项至多约 4/3 编码开销加有限元数据;发布过程中最多额外一份 2 MiB 以内暂存,失败清理不影响最后已提交的同名项;其他缓存已经发生的淘汰不回滚。

所有权与失效 ​

缓存接收作者已有的字节,无需授权。Services 保留唯一事务锁及事实,操作在有界存储队列执行,提交前与返回前检查取消;同步磁盘 IO 没有硬取消时限。最多读取或写入一个有界完整项。

内部目录按安装与实例隔离,调用方不能提交身份、路径或其他实例的 key。每项使用独立原子记录,启动从记录重建有限内存索引,正文采用规范 Base64,校验长度及摘要,损坏按未命中处理,不从 previous 恢复。页面重载、隐藏和正常重启可以复用;包版本变化、安装授权或绑定变化使该安装的相关缓存失效,保守地清理全部而不猜测字节来源。撤权后再授权前必须完成清理,不能恢复旧缓存;在途 get 捕获该安装全部能力与绑定的失效代次,撤销后不能将已读取正文投递给旧文档。

已交给网页的字节以及网页/网络自行保存的内容无法撤回。此规则仅覆盖宿主管理的缓存,不承诺直接联网组件“不外传”。元数据损坏回退时丢弃缓存,避免旧授权状态恢复缓存。卸载自动清理本安装的索引、正文和暂存,失败保留清理任务,不影响其他安装或实例存档。

视觉参考 ​

星河微光使用可重建的有限 PNG 静态预览缓存:按配色分别命名,未命中重新生成,缓存不可用仍保留原 CSS 静态降级。只在静态降级需要时生成,不逐帧写入,不把缓存作为 Worker 或 GPU 恢复成功的证明。实际实现与验证见实现说明(宿主文档:../implementation.md)。

当前宿主协议 · SDK 0.1.1 · MIT