文件公开分享方案讨论记录(2026-02-02)

February 1, 2026
1 min read
By devshan

Table of Contents

This is a list of all the sections in this post. Click on any of them to jump to that section.

背景

  • 需求:在端到端加密、分块存储、无中转服务的前提下提供“公开分享”。
  • 前端初步接入了分享生成/管理 UI;核心也添加了基础接口草稿,但发现架构折中严重。
  • 决策:实用性和可控性不足,当前暂不落地分享功能,回滚改动。

调研结论

  1. S3 仅能对单对象做预签名;分块加密文件无法“整个文件夹/文件”直接分享。
  2. 业界做法(Proton/Tresorit):服务端记录分享,浏览器端解密;撤销依赖清单/令牌,无法阻断已发出的预签名 URL,强撤销需换凭证。
  3. 我们的可选方案:
    • 清单 + 分片预签名:不重传文件,带宽低;撤销弱,只能删清单+等预签过期。
    • 再封装单对象(share blob):可撤销,URL 简短,但需要读全密文再上传,带宽≈2×文件大小。
    • 轻量中转/明文副本:破坏 E2E 或增加服务,违背当前“无服务器”目标。

风险与不足

  • 无法在“无服务器 + 分块加密”下同时满足“零额外带宽”与“即时强撤销”。
  • 大文件清单会产生大量预签 URL;浏览器端解密/拼接可能耗时、占内存。
  • 生成明文或再封装都会消耗上/下行带宽,移动端体验差。

决策

  • 暂停公开分享功能实施,回滚相关代码。
  • 保留记录,待未来有中转服务或产品策略调整再评估。

影响

  • 前端:移除分享管理页入口、分享 API/标记等改动。
  • 后端:移除新增的 share 接口、索引、S3 预签封装等变更。