视频能不能看、谁能看哪个视频,权限必须落到单个视频上,只做菜单级控制等于没控
项目概览
项目背景
这是一套视频服务三件套,共 3 个仓库:JavaScript 编写的视频播放端、Vue 编写的管理后台,以及 Java 编写的接口服务。播放端负责视频播放与弱网降级,管理端负责上传与转码状态跟踪,接口层负责视频数据访问与逐视频的权限校验。
客户当时的状态
视频系统的问题通常集中在两个地方。一是权限:很多系统把「不能看的视频藏起来」当成权限控制,但播放地址一旦下发到前端,遮挡就失去意义了,权限必须落在接口层、按单个视频判断。二是形态差异:点播有进度、能拖动、能续播,直播只有当前进度,两者用同一套播放逻辑,体验都会变差。此外,上传之后要转码,转码过程如果不可见,用户和管理员就只能反复问「好了没」;移动网络下播放中断是常态,报错退出会直接赶走用户。还有一点容易被忽略:视频资源一旦播放地址泄露,性质上等同于内容泄露,所以鉴权不能只在进入页面时做一次。
我们的做法与取舍
第一个取舍是把权限判断放到接口服务,逐个视频校验,而不是靠前端遮挡。代价是每次播放都要走一次鉴权,收益是权限这件事真正成立。
第二个取舍是点播与直播分开处理,各自用合适的状态模型。共用一套播放逻辑看着省事,但两种场景的核心诉求本来就不一样。
第三个取舍是把上传转码状态完整暴露出来。处理中、成功、失败都要可见。状态不透明省下的开发量,最后都会变成沟通成本。与其让用户反复追问进度,不如把状态直接摆在界面上。
系统怎么承载这条链路
播放层是视频播放端,处理点播与直播两种形态并落实弱网降级;服务层是 Java 接口服务,承载视频数据访问、逐视频权限校验与地址下发;管理层是 Vue 管理后台,负责上传、转码触发与状态跟踪。
交付状态与边界
三个仓库的最后提交时间都是 2025 年 8 月,目前没有再更新的记录。边界说明:视频内容由贵方提供,我们不参与内容生产与审核;存储与分发带宽以既有或签约的服务方案为准;视频版权与传播授权由内容提供方负责。播放端的降级参数可以按贵方的实际网络情况调整,但降级的判断逻辑统一在前端实现,不在服务端分散处理。这些边界在方案阶段就需要明确,避免交付后责任不清。
项目信息
某视频服务项目
未披露
JavaScript(视频播放端)/ Vue(管理后台)/ Java(接口服务)
视频服务三件套
CHALLENGES
客户当时面对的现实
点播与直播的形态差异明显:一个可拖动、可续播,一个只能跟当前进度,不能套同一套播放逻辑
上传之后要转码,转码过程不透明,用户和管理员都不知道卡在哪一步
移动网络条件下播放中断是常态,播放端必须能在弱网下降级而不是直接报错
CAPABILITIES
我们交付的能力
视频系统的问题一半在权限,一半在弱网
视频权限控制
权限判断落到具体视频,由接口服务统一校验,不依赖前端遮挡。
点播与直播区分
点播与直播按形态分别处理,续播、进度与状态管理方式不同。
上传与转码跟踪
管理端承载上传与转码状态跟踪,处理中、成功与失败都可见。
弱网降级
播放端在网络不稳时按策略降级,优先保证可看,而不是直接中断。
SCOPE
交付范围
以下范围按本项目实际交付内容与边界整理,不属于这次范围的部分一并列出。
已交付
- 视频播放端(JavaScript)
- 管理后台(Vue)
- 接口服务(Java,含权限校验)
- 上传与转码状态跟踪
- 播放端弱网降级策略
不在本次范围
- 视频内容本身:内容由贵方提供,我们不参与内容生产与审核
- 存储与分发带宽:以既有或签约的服务方案为准
- 视频版权与传播授权:由内容提供方负责
ARCHITECTURE
分层技术架构
公开口径归纳为三层:播放层是 JavaScript 播放端;服务层是 Java 接口服务,承载视频数据与权限校验;管理层是 Vue 管理后台,负责上传与转码状态跟踪。
播放层
保证在各种网络条件下都能看下去
服务层
权限在服务端判断,前端遮不住问题
管理层
让视频处理过程对管理员可见
DELIVERY
交付过程
分阶段推进,每个阶段都有可验收的产出,客户在早期就能看到实际效果。
形态与权限梳理
确认点播与直播的覆盖范围,定义视频级的权限规则。
接口服务与权限
Java 接口服务承载视频数据访问与逐视频权限校验。
管理端上传与转码
管理后台实现上传、转码触发与状态跟踪。
播放端与弱网策略
播放端交付,落实弱网降级与异常处理。
FACTS
可核验的交付事实
以下内容来自本项目实际交付物;未经验证的指标不予展示。
播放端 / 管理端 / 接口层
三种技术栈各司其职
三个仓库的最后提交时间
TRANSFER
这套做法适不适合你
案例的用处不是证明"我们做过",而是让你判断"在我们这种条件下能不能做成"。下面三句是我们对这一单的判断,写下来供你对照自己的情况。
适合什么情况
适合视频内容需要按人按条控制访问、且用户网络环境不稳定的场景。
什么情况下别照搬
若视频全部公开、没有权限诉求,逐条权限校验属于过度设计;内容生产与版权不在开发范围内。
如果要试,第一步做什么
先把「谁能看哪个视频」的规则写成一份清单。
RELATED SERVICES
相关服务
从实际业务问题出发,查看对应服务的适用场景、交付物与不含项;具体范围仍需单独确认。
FAQ
常见问题
以下是同类项目沟通中出现频率最高的问题,答案就是我们实际的做法。
视频权限为什么不能在前端做?
点播和直播差别有多大?
上传转码为什么要做状态跟踪?
弱网下怎么办?
现在还在维护吗?
本页最后更新:2026年9月24日