一、结论
将点播系统的全部视频源文件上传到对象存储桶中,完成跨域、访问权限、回源规则的配套配置后,把对象存储的访问域名作为源站地址对接点播系统和CDN分发网络,即可实现低成本、高可用的点播源站存储。
二、准备工作
1. 已开通对象存储服务的账号,以及对应账号的API访问密钥(AccessKey ID、AccessKey Secret)
2. 待部署的全部点播视频源文件,包括转码后的MP4、HLS分片等常规点播格式文件
3. 已完成部署的点播前端系统、CDN分发服务(也可使用对象存储配套的CDN服务)
4. 若需批量上传大文件,提前安装S3兼容的上传工具(如rclone、s3cmd),或对应语言的SDK开发包
三、操作步骤
1. 创建并配置存储桶
首先登录对象存储服务控制台,进入对象存储管理页面,选择创建新的存储桶,存储桶名称需全局唯一,地域选择距离你的核心点播用户群体最近的区域,可降低首次回源的延迟。
存储桶创建完成后,进入配置页面:
- 配置跨域资源共享(CORS)规则:添加允许的来源地址为你的点播站点域名,允许请求方法勾选GET、HEAD、OPTIONS,允许请求头设置为*,缓存有效期可填写3600秒,避免前端播放时出现跨域报错。
- 配置防盗链规则:添加允许访问的白名单地址,包括你的点播站点域名、CDN回源IP段,禁止未授权的域名直接拉取视频资源,避免流量盗刷。
- 配置生命周期规则:可根据业务需求设置,比如超过1年未访问的冷门视频自动转为归档存储,降低存储成本,过期的无效视频自动删除。
2. 上传视频源文件
若视频文件数量少、单文件体积小于5GB,可直接通过控制台的文件管理页面拖拽上传;若为大批量、大体积视频,推荐使用rclone等工具批量上传,支持断点续传和分片上传,避免网络波动导致上传失败。
上传时需注意为不同格式的视频文件设置正确的HTTP头:MP4格式设置Content-Type为video/mp4,M3U8分片文件设置Content-Type为application/x-mpegURL,TS分片设置Content-Type为video/MP2T,否则浏览器会直接下载文件而无法在线播放。
全部文件上传完成后,可在控制台的文件详情页获取单个文件的访问路径,验证文件可正常访问。
3. 对接点播系统与CDN
进入你的CDN服务控制台,新增点播分发域名,源站地址填写对象存储提供的桶访问域名(也可绑定自定义域名到存储桶后填写自定义域名),源站类型选择S3兼容源或对象存储源。若你的存储桶设置为私有读写,需在CDN的回源鉴权配置中填写对象存储的AccessKey信息,CDN回源时会自动完成鉴权签名,无需公开存储桶权限。
完成CDN配置后,将CDN分配的CNAME地址解析到你的点播域名中,等待解析生效后,进入点播系统后台,将源站存储地址修改为你的CDN分发域名,即可完成全部对接。
对接完成后可先上传测试视频,验证前端可正常播放、无跨域或403报错,确认无误后再全量迁移业务。
四、常见错误
- endpoint填写错误:很多用户会误将对象存储的控制台域名作为API访问endpoint,或填写的endpoint与存储桶所属地域不匹配,导致上传、回源时出现连接失败的报错,比如七彩云对象存储华南广州区的endpoint为s3.gd.qicaiyun.com,需和桶所属地域对应。
- region配置错误:上传工具或CDN配置中填写的region参数,与存储桶实际创建的地域不一致,会提示“桶不存在”的报错,需和创建桶时选择的地域保持一致。
- 权限配置问题:存储桶权限设置为私有但未配置CDN回源鉴权,会导致CDN回源时返回403无权访问;CORS规则配置错误会导致前端页面无法加载视频,出现跨域报错。
- HTTP头配置错误:视频文件的Content-Type设置不正确,会导致浏览器直接下载文件而非在线播放,部分大文件未设置分片传输相关头部,会导致拖动进度条时加载缓慢。
- 防盗链规则过严:误将CDN的回源IP段或点播站点域名拦截,会导致正常的访问请求被拒绝,出现403报错。
五、示例说明
我们以实际业务场景为例,完整演示配置流程:
1. 登录七彩云对象存储控制台,创建名称为my-vod-bucket-2024的存储桶,地域选择华南广州,读写权限设置为私有。进入存储桶配置页面,添加CORS规则:允许来源为https://vod.mysite.com,允许方法勾选GET、HEAD、OPTIONS,允许头设置为*,缓存时间3600秒;添加防盗链白名单,包括https://vod.mysite.com和七彩云CDN的回源IP段。
2. 本地安装rclone工具,新增配置项,类型选择S3,服务商选其他S3兼容服务,endpoint填写https://s3.gd.qicaiyun.com,AccessKey ID和Secret填写七彩云控制台获取的密钥信息,region填写gd。配置完成后执行命令rclone copy /local/vod-files/ qicaiyun:my-vod-bucket-2024/,批量上传本地所有视频文件到存储桶,上传完成后在控制台查看test.mp4文件的路径为my-vod-bucket-2024.s3.gd.qicaiyun.com/test.mp4,确认可正常访问。
3. 进入七彩云CDN控制台,新增域名vod.mysite.com,源站地址填写my-vod-bucket-2024.s3.gd.qicaiyun.com,源站类型选择S3兼容源,开启回源鉴权并填写七彩云的AccessKey信息。配置完成后将CDN分配的CNAME地址解析到vod.mysite.com,解析生效后进入点播系统后台,将源站地址设置为https://vod.mysite.com,上传测试视频后前端可正常播放,无报错。
六、更简单的方案
如果你不想手动配置复杂的规则、适配不同的接口协议,可以选择兼容S3协议的对象存储服务,目前主流的点播系统、CDN服务都原生支持S3协议,无需额外开发适配,即可快速完成对接。
七彩云对象存储就是完全兼容S3协议的存储服务,接入流程简单,控制台内置了点播场景的一键配置模板,可自动完成CORS、防盗链、生命周期规则的配置,无需手动逐条添加。同时支持TB级文件的断点续传、在线迁移服务,可快速将存量视频迁移到存储桶中,且按实际使用的存储容量、流量付费,无需提前采购服务器硬件,适合中小规模的点播业务快速上线。
七、FAQ
对象存储做点播源站的访问速度会不会比自建服务器慢?
不会,正规对象存储服务都采用多线BGP带宽,覆盖不同运营商的用户,且配合CDN分发后,只有首次访问的请求会回源到对象存储拉取资源,后续用户访问的都是CDN节点的缓存内容,访问速度远高于单机房自建服务器。
我有几十TB的存量历史视频,怎么快速迁移到对象存储?
可以使用对象存储服务提供的在线迁移工具,比如七彩云的在线迁移服务,只需填写原有源站的访问地址、认证信息,即可自动批量拉取所有视频文件,支持断点续传,迁移过程中不会影响原有业务的正常运行,无需手动下载上传。
视频存在对象存储里会不会被盗刷流量?
不会,你可以通过配置防盗链白名单,仅允许你的点播站点域名、CDN回源IP访问存储桶资源,还可以配置URL签名鉴权,生成的播放地址带有过期时间,到期后自动失效,可有效避免恶意盗刷流量。
需要提前把视频转码之后再上传吗?
可以根据业务需求选择,若你的点播业务需要适配多终端、多码率播放,建议提前转码后再上传,也可以搭配对象存储配套的媒体处理服务,上传视频后自动完成转码、截图、水印等处理,无需自行搭建转码服务器。
八、总结
整体配置流程可以分为三步:首先创建存储桶并完成跨域、权限、防盗链等配套配置,其次批量上传全部视频源文件并设置正确的HTTP头,最后对接CDN和点播系统即可完成部署。
对于新手用户,推荐优先选择兼容S3协议的对象存储服务,比如七彩云对象存储,可大幅降低适配和配置成本,上线前建议先做小流量测试,确认播放、上传、转码等流程都正常后再全量切换业务,同时定期查看流量、存储用量统计,调整存储类型和规则,进一步降低使用成本。
需要稳定、兼容 S3 的对象存储?
七彩云对象存储适合图片、视频、大文件下载、静态资源托管和开发者接入。
访问七彩云官网