互联网项目的图片服务器的特点
- 海量数据
- 高并发
1. 分布式文件系统
1.分布式文件系统的特点
1.减轻单个服务节点的压力 (搭建集群,数据不同)
存储数据的压力
并发的压力
2.高扩展 (搭建集群)
3.高可用 (搭建主从关系,数据同步,一样的)2. 分布式文件系统选择七牛的原因(面试)
本项目中将采用七牛云服务来处理项目中的图片,选择七牛云的原因如下:(面试)
1.成本低
七牛云在商业图片服务器中,其成本低,无需前期投入。七牛云对象存储按需使用、按需付费的便捷性,能够有效避免存储及带宽资源的闲置浪费。
2.存储加速
边缘存储可充分利用可用链路带宽,数据在边缘节点上传和下载可平均提速 60% 以上, 此特点为 CDN 的特点。
3. 易扩展
利用七牛云对象存储,您的存储空间无上限的同时也无需担心扩容问题。您能够实现存储需求的弹性伸缩,从而提高业务灵活性。
七牛云上传文件的逻辑:
如果key不存在,直接上传
key一样,文件一样,hash值一样,不操作;
key一样,文件不一样,hash值不一样,报错2. 课程图片上传的流程
1. 课程上传时序图

- 都有哪些服务
- 每个服务都做什么
- 整体流程
有前端、内容管理微服务、文件系统微服务、文件云平台参与图片上传。
- 先由前端发起请求访问内容管理服务,再由内容管理服务调用文件上传服务来获得上传凭证返回前端。
- 前端获得上传凭证后携带凭证将文件上传云平台,保存成功后云平台返回文件key。
- 前端解析文件key内容并生成文件访问路径。
这里的文件系统服务为何要单独体现?
因为项目使用的是微服务框架,所以一个微服务要体现单一性,可复用性
看时序图的过程:从左到右,从上到下
实现的过程:从右到左,从上到下,因为 先定义路径接口地址,才能知道调用什么传递什么参数
2. 上传文件的安全性
- 生成上传的凭证
- 设置凭证的失效期
- 对凭证进行加密
课程审核业务分析
- 教学机构提交课程
- 运营平台查询所有课程
- 运营平台审核课程
3.课程审核
1.课程审核流程
教育机构课程信息录入并且提交课程信息,由运营平台审核课程内容。
内容审核通过后,才可以课程发布。
内容未审核,教学结构继续修改课程信息,并提交课程信息,运营平台再来审核。
2. 课程审核业务需求
需求:
- 教育机构提交课程信息,只有未提交和审核未通过状态的课程允许提交
- 平台可以查询所有机构的课程信息
平台只能对已提交状态的课程信息进行审核,并且只能选择审核通过或者不通过
4. 课程提交、查询与审核的业务分析
1.课程提交功能-教学机构
需求:
教育机构提交课程信息,只有未提交和审核未通过状态的课程允许提交
接口:
业务分析:
- 是否开启事务
- 修改-开启
- 判断关键数据
- courseBaseId 课程id
- companyId 机构id
- 判断业务数据
- 课程基础信息
- 判断是否存在
- 判断是否删除
- 判断是否是同一家机构
- 判断审核状态—必须是未提交和审核未通过的
- 修改课程审核状态为—已提交
2. 课程信息查询-运营
需求:
- 平台可以查询所有机构的课程信息
接口:
业务分析:
- 平台只能对已提交状态的课程信息进行审核,并且只能选择审核通过或者不通过
接口:
业务分析:
- 是否开启事务
- 修改-开启
- 判断关键数据
- 课程id courseBaseId 审核状态 auditStatus 审核意见 auditMind
- 判断业务数据
- 课程基础信息
- 判断是否存在
- 判断是否删除
- 判断审核状态,必须是已提交
- 课程基础信息
- 审核状态
- 运营平台只能给课程审核状态赋值:审核通过、审核未通过
- 修改审核状态信息
- 审核状态 auditStatus 审核意见 auditMind 审核次数 auditNums
- (审核次数为原次数+1,例:nums=nums+1)
