标准答案
- 对象存储提供容量、版本、生命周期和分发能力,应用通常保存对象键和元数据而不是文件内容。
- 文件系统适合低延迟本地处理或已有 POSIX 语义的程序,但要考虑多实例共享、备份和磁盘故障。
- BLOB 可以与业务记录在同一事务中管理,适合规模较小、强一致读取或备份边界要求明确的文件。
- 无论存在哪里,都要校验大小和类型、隔离路径、控制权限、记录生命周期并设计清理失败补偿。
题目解析
对象存储适合大文件和分发,文件系统适合本机或明确的共享目录语义,BLOB 适合规模较小且希望与业务记录靠近管理的对象。选择还要考虑备份、事务、访问延迟和多实例部署。
文件内容和业务元数据经常不在同一个事务中。上传、记录创建、删除和恢复要有状态机、校验和清理补偿,不能只依赖“文件存在”判断业务是否完成。
无论存储介质如何,路径或对象键都不是权限。下载、上传、列举和删除必须由服务端按用户、租户和业务状态授权,并限制大小、类型和内容风险。
常见误区
- 误区:把大文件直接塞入业务数据库。改正:按文件大小、事务需求和备份边界选择对象存储或专用文件服务。
- 误区:多实例服务把本地磁盘当共享存储。改正:使用共享文件系统或对象存储,并明确一致性和故障恢复。
- 误区:对象上传成功但业务记录失败后没有清理。改正:保存上传状态、定期扫描孤儿对象并执行可审计的清理补偿。