功能定位:为什么必须清理过期群组文件

Letstalk IM 的「云保险箱」与「群组文件池」共用 8 GB(免费版)或 50 GB(Pro 版)额度,过期文件不仅占用配额,还会在匿名群聊 72 h 轮换密钥时留下无法解密的碎片。2026-04-28 发布的 6.4.0 把「后台批量清理」从实验室移到「存储管理」一级入口,官方解释为「降低服务端密文堆积」。换言之,清理动作只在本地索引层删除指针,服务端密文会在 7 天后由守护进程统一回收,既节省配额,又不破坏前向保密。

功能定位:为什么必须清理过期群组文件
功能定位:为什么必须清理过期群组文件

版本演进:从手动到半自动的三次迭代

6.2.0 之前,管理员只能逐条长按文件→「删除」→「同时删除对方副本」,一次最多 30 条;6.3.0 加入「按日期筛选」实验室开关,但入口藏在工作台「高级→实验室→存储清理」;6.4.0 起,「存储管理」被提到「设置→通用」第二屏,并支持「30 天前」「90 天前」「自定义区间」三档快速筛。经验性观察:6.3.0 的筛选在 5 万条级别会话会出现加载转圈,6.4.0 把索引改为本地 SQLite+分页,滚动 10 万条文件可在数十秒内完成。

操作路径:Android / iOS / 桌面端最短入口

Android(以当前最新版本为例)

  1. 打开 Letstalk→右上角「⋯」→「设置」→「通用」→「存储管理」→「群组文件」。
  2. 在「时间筛选项」选择「30 天前」,系统自动统计可清理大小。
  3. 点击「预览清单」可展开文件名、上传者、最后访问时间;确认后点「批量删除」。
  4. 二次弹窗会提示「是否保留对方副本」——若关闭,则触发双向销毁;默认开启仅清理本地索引。

示例:在 5 万条文件群聊中,按「30 天前」筛选后,系统提示可释放 3.2 GB,确认后 15 秒完成索引删除,7 天后服务端密文回收,配额图表回落。

iOS(路径与 Android 镜像,但交互略有差异)

  1. Letstalk→「我的」→「设置」→「通用」→「存储管理」。
  2. iOS 端把「预览清单」做成底部抽屉,左滑单条可「临时排除」,适合误标重要文件。
  3. 其余步骤与 Android 一致。

桌面端(Windows / macOS / Linux)

  1. 左上角「☰」→「设置」→「数据与存储」→「存储管理」。
  2. 桌面端额外提供「导出 CSV」按钮,可把待清理列表导出到本地审计,再执行删除。
  3. 若开启「多设备分离」,仅「工作机」标签下的文件会被列入候选,避免误删「日常机」备份。

例外与取舍:哪些文件不会被筛出来

被管理员「置顶」或加入「频道精选」的文件,系统默认豁免;若坚持删除,需先取消置顶。「云保险箱」单文件虽在群组转发过,但原始副本保存在保险箱,不会出现在「群组文件」列表;需到「保险箱→清理」单独处理。匿名群聊中,上传者身份已轮换为「过期密钥」,文件虽存留,但上传者字段显示「Unknown」;这类文件可被清理,但无法触发双向销毁,因为原始密钥已丢失。

副作用与缓解:索引重建与客户端瞬时卡顿

经验性观察:一次性删除 8 000+ 条大文件后,本地索引需要重建,Android 低端机在接下来的 30 秒内搜索历史消息可能出现「空白结果」,这并非数据丢失,而是 SQLite VACUUM 操作阻塞了查询线程。缓解方案:在「设置→高级→诊断」打开「后台索引重建」,把 VACUUM 放到充电且空闲时执行;或分批删除,每批不超过 2 000 条。

副作用与缓解:索引重建与客户端瞬时卡顿
副作用与缓解:索引重建与客户端瞬时卡顿

与机器人协同:能否让第三方归档 Bot 先备份再删除?

Letstalk 官方未提供「群组文件」粒度的 Bot API,仅开放「消息 ID」级读取。经验性做法:先让第三方归档机器人(示例:开源的 letstalk-archiver)通过用户账号登录,调用「导出频道」功能把文件拉到本地 NAS,再执行批量清理。注意:机器人需具备「读取消息」「下载文件」两项权限,切勿授予「删除」权限,以免脚本 bug 导致误删。

故障排查:筛不到文件 / 删除后容量未释放

现象可能原因验证步骤处置
筛不到 30 天前文件设备时间错误对比系统时间与时区手动校准到 NTP 池
删除后容量未变仅删索引,密文未到期等 7 天后看「存储管理」图表无需操作,属正常延迟
批量删除按钮灰色非管理员或无「文件管理」权限检查「群组→权限」让群主开启权限

适用场景清单:什么时候值得一次性清理

  • 匿名群聊每 72 h 轮换密钥,且日更文件 200+,30 天后累积 6 k 条,配额占用超 70%。
  • 企业并购频道,项目结束需留痕但释放空间,先导出 CSV 审计,再批量删除。
  • 频道精选已把「最终版合同」置顶,其余中间版本可全部清理,降低泄密面。

不适用场景:何时不该用批量删除

  • 群组开启「法律合规存档」模式,管理员有义务保留 3 年通信记录,此时应购买 Pro 扩容而非删除。
  • 文件尚未完成「双向销毁」确认,对方仍在引用,贸然删除会导致对方打不开,引发协作纠纷。
  • 正在使用第三方 Bot 做增量备份,备份未完成前删除会造成断档。

最佳实践 5 条(检查表)

  1. 清理前先用桌面端「导出 CSV」留审计痕。
  2. 确认系统时间与时区正确,避免日期筛错。
  3. 关闭「智能省电」,防止 VACUUM 被系统挂起。
  4. 分批删除,每批 ≤2 000 条,降低 SQLite 锁表。
  5. 删除后 7 天再检查「存储管理」图表,确认配额回落。

FAQ(Schema.org 结构)

删除后对方还能下载文件吗?

若关闭「保留对方副本」,系统触发双向销毁,对方会立即看到「文件已失效」;若开启,则仅清理本地索引,对方仍可下载至 7 天后服务端密文回收。

一次性清理上限是多少?

官方未设硬上限,经验性观察:5 万条文件以内可一次提交;超过时客户端会提示「建议分批」并自动拆包。

清理动作是否可逆?

本地索引删除后无法撤销;若未触发双向销毁,可在 7 天内通过「回收站」恢复,超过 7 天密文被永久擦除。

收尾:下一步行动

打开 Letstalk→「设置→存储管理」,先导出 CSV 留痕,再按 30 天筛,确认 exempt 文件后分批删除,7 天后复查配额。若群组需合规存档,请改用 Pro 扩容而非清理。养成「项目结束即审计」的节奏,既保住配额,也减少泄密面。

未来版本观察:官方在 6.4.0 发布纪要中提及「后续将支持按文件类型与哈希去重」,若落地,可进一步压缩重复图纸、视频所占空间;建议关注「实验室」更新日志,第一时间体验。