技术专栏 · 发布 2026年5月2日
文件存储:从本地目录到对象存储
附件功能一开始都很简单,直到客户开始上传几个 G 的视频,并要求权限隔离。
几乎所有后台系统都有附件功能。第一版通常是把文件存到服务器本地目录,数据库记一个路径。这套方案在单机、小文件、少量用户的场景下完全够用。
什么时候必须换
多台服务器部署时,本地目录无法共享,用户上传的文件可能在下一次请求里找不到。
文件体积增长后,备份和迁移成本迅速上升,磁盘扩容也变得麻烦。
合规要求需要细粒度权限,本地目录的权限模型难以支撑。
迁移路径
先抽象出统一的存储接口,业务只依赖接口,不直接操作文件系统。
把新上传的文件写入对象存储,历史文件保留原路径并逐步迁移。
下载统一走签名链接,控制有效期和访问权限,避免文件被直接爬取。
存储方案的演进不必一步到位,但接口抽象应该在第一版就做好,否则迁移成本会高出一个量级。