- 文件上传文件下载文件列表查询文件删除文件关联
文件作为无业务的数据对象存储后有一个唯一的文件fileId,通过文件fileId能找到文件的数据;
业务角度并不关心fileId,业务只关心业务busiSeqNo,因此需要建立busiSeqNo和fileId的映射;
影像文件在生产业务中强关联用户信息或者其它一级业务信息,因此有必要把热点busiSeqNo和
fileId关联,比如用户uuid和fileId的关联,这样就可以通过uuid拿到用户的所有影像资料
fileId、busiSeqNo、uuid是影像文件的核心领域属性字段;
技术架构一、文件信息
- fileId文件存储路径文件存储大小文件业务分类类型文件格式文件是否加密文件加密算法文件其余存储引擎相关信息创建时间更新时间文件主权系统
二、文件和业务信息的映射关系
文件fileId和busiSeqNo的映射关系存储;busiSeqNo和文件fileId呈正相关,虽然映射关系数据结构简单,但是存储量非常大;因此需要选一个大存储的组件;
- MySQL可以用sharding做分库分表
- 一致性hash环实现分片累加:第一个分片慢了再存第二个分片,以此类推分片键的选择及分片数设定
- 考虑是否迁移数据考虑数据增长速度考虑扩容?缩容没考虑
三、文件的存储引擎选择
- 常规的FTP服务分布式文件存储系统 FastDFS云SAS存储对象存储系统...............
根据系统业务容量,业务增长情况,成本预算、技术支持能力、项目时间KPI等综合考虑选择不同的存储引擎
四、数据权限管理
- 系统常规鉴权,鉴权通过后就可以直接查看文件,这种权限粒度比较粗文件权限有效期保护,权限是有有效期的业务维度做权限矩阵表后台管理人员对数据权限的管理删除权限界定,谁可以删除?查看权限界定,谁可以查看
五、安全
- 文件加密存储文件压缩存储文件下载、上传的安全校验
- 比如暴力脱库下载如何防护暴力上传打死IO如何防护
- 限流熔断身份识别?
六、数据质量治理
- 数据的准确性:是否可以定时订正修复数据的有效性:是否可以定时过滤掉无效数据重复文件清除类似文件筛选掉数据归档
七、成本及性能问题
- 数据的存储空间成本考核
- 动态调整存储压缩算法,比如把非热点数据压缩,热点数据不压缩;根据网络情况做分布式缓存,提高访问能力
- 优先级高的存储高性能存储优先级低的存储普通存储



