如何设计云盘系统?✅
答案
一、概览
面向大文件的云盘:分片/断点续传/秒传 + 版本与回收站,基于对象存储与 CDN 加速,覆盖分享鉴权、配额与生命周期治理。
二、目标与指标(SLO)
- 上传成功率 ≥ 99.9%,大文件(>5GB)断点续传可恢复。
- 断点续传重试指数退避,合并成功率 ≥ 99.99%。
- 下载 P95 < 100ms 首包(CDN 命中)。
三、架构
四、上传与下载
- 直传:临时凭证 STS + 预签名;分片并发(动态分片大小),失败重试与跳过已完成块。
- 秒传:MD5/ETag 指纹比对;服务端查重与引用计数。
- 合并:服务端校验分片列表与哈希;幂等 key 保证重复请求安全。
- 下载:Range/断点续传;CDN 鉴权与签名 URL;带宽自适应限速。
五、权限与分享
- 权限模型:拥有者/协作者/访客;Link 权限(公开/私密/限时/限次),密码/验证码二次校验。
- 审计:下载/预览日志、外链访问统计,异常告警(异常 IP/UA/地区)。
六、治理与成本
- 配额/生命周期:空间配额、文件生命周期(热/冷/归档),回收站与版本管理。
- 内容安全:病毒/敏感识别;大规模扫描异步队列 + 隔离区。
面试官视角:
- 关注一致性/幂等(重复上传、重试)、大文件可靠性、权限与审计
延伸阅读:
- S3 多分段上传、Range/ETag、对象存储一致性