简介
然而,不经测试就对使用中的域名设置防盗链有以下风险:
可能导致现网用户播放失败。
可能未达到播放控制的效果。
如果生成的防盗链中签名参数
sign
计算错误,启用防盗链可能导致现网所有视频播放失败。如果生成的防盗链中过期时间参数
t
过大,启用防盗链后视频播放 URL 不会在预期的时间失效。因此,开发者为域名设置防盗链前应当先测试,确认符合预期后再执行变更操作。并且,开发者终端测试防盗链的同时,不能影响现网用户(即保证防盗链测试对现网安全)。
实现安全的防盗链测试
云点播为开发者提供了安全测试防盗链的解决方案。
术语说明
为了便于说明方案,下面介绍一些会涉及的术语:
点播默认域名:现网环境中,用户播放点播视频使用的正式域名。“预置点播域名”和“自定义域名”都能被设置成“点播默认域名”(设置方法请参见 自定义域名)。
预置点播测试域名:一个用于开发者调试的测试域名(通常为
xxx-test.vod2.myqcloud.com
),不得用于现网环境,不能被设为默认域名。正式 App 后台:业务的 App 后台服务,现网用户从这里获取视频的播放 URL。
测试 App 后台:业务测试环境中的 App 后台服务,测试客户端从这里获取视频的播放 URL。
方案细节
通常情况下,现网用户从业务的正式 App 后台获取视频的播放 URL,测试客户端从业务的测试 App 后台获取视频播放 URL,两处获得的 URL 中的域名相同(都是点播默认域名)。当对防盗链测试时,不能直接变更点播默认域名,否则现网用户将受到影响。
为了避免防盗链测试影响现网用户,云点播提供了一个“预置点播测试域名”,与现网中使用的点播默认域名隔离。开发者测试防盗链时,仅操作测试域名的防盗链配置。
云点播还提供了一个“测试域名代理”(IP 为
122.152.250.73
),开发者只需要修改测试客户端的 HOST 表,将点播默认域名解析到这个代理上,测试客户端的视频播放请求,将经过代理转发到测试域名(下图中的红色路径),而现网用户的播放请求仍然通过正式域名获取视频内容(下图中的黑色路径)。
因此,开发者可以自由修改测试域名的防盗链配置,以及测试 App 后台派发的视频播放 URL,而不必担心影响到现网用户。
开发者使用测试客户端和测试 App 后台,充分验证防盗链并确认无误后,可以依次执行以下步骤:
1. 将正式 App 后台派发视频播放 URL 的规则修改成与测试 App 后台一致。
2. 将点播默认域名的防盗链配置修改成和预置点播测试域名一致。
如此,点播默认域名的防盗链正式生效,经过测试验证的防盗链配置被应用到了现网。
操作实例
下面,以用户开启 KEY 防盗链为例,介绍防盗链测试的操作步骤:
1. 预置点播测试域名开启防盗链。
2. 获取一个原始播放 URL。
3. 测试客户端仍然能够播放视频原始 URL。
4. 测试客户端修改 HOST 表。
5. 测试客户端不能再播放视频原始 URL。
6. 测试客户端能够播放带防盗链参数的 URL。
7. 正式 App 后台生成带防盗链参数的 URL。
8. 点播默认域名开启防盗链。
背景
预置点播域名(
125xxx655.vod2.myqcloud.com
)。预置点播测试域名(
125xxx655-test.vod2.myqcloud.com
)。初始状态下,预置点播域名
125xxx655.vod2.myqcloud.com
为点播默认域名,并且没有开启 KEY 防盗链。1. 预置点播测试域名开启防盗链
选择预置点播测试域名(
125xxx655-test.vod2.myqcloud.com
),单击设置,进入Key 防盗链,启用 Key 防盗链,并使用“生成 Key”生成一个防盗链 Key。单击确定保存,等待配置生效。2. 获取一个原始播放 URL
视频的原始播放 URL,是指没有带 防盗链参数 的 URL 地址,可以从控制台 媒资管理 中获取。例子中使用的 URL 为:
https://125xxx655.vod2.myqcloud.com/ca7xxx655/cfbxxx349/PkxxxIA.mov
。3. 测试客户端仍然能够播放视频原始 URL
此时,测试客户端仍然可以直接通过视频原始播放 URL 播放视频,执行curl
返回的 HTTP 状态码为200。4. 测试客户端修改 HOST 表
修改测试终端的 HOST 表(Windows 系统为
C:\\Windows\\System32\\drivers\\etc\\hosts
,Mac 系统为/private/etc/hosts
),添加一条记录``122.152.250.73 125xxx655.vod2.myqcloud.com``
,然后保存。修改后,执行
``ping 125xxx655.vod2.myqcloud.com``
检查 HOST 修改是否生效。5. 测试客户端不能再播放视频原始 URL
修改 HOST 表后,测试客户端使用视频原始播放 URL 将无法播放,检查 HTTP 状态码为 403 Forbidden。因为修改了 HOST 表,测试客户端发起的视频播放请求,已经被映射到了预置点播测试域名,必须为视频播放 URL 带上正确的防盗链参数才能播放。
6. 测试客户端能够播放带防盗链参数的 URL
按照 Key 防盗链的 生成规则 生成带有防盗链参数的 URL,便能成功播放视频,地址为
https://125xxx655.vod2.myqcloud.com/ca7xxx655/cfbxxx349/PkxxxIA.mov?t=5bd6be00&sign=18cxxx9deb
,执行``curl``
返回的 HTTP 状态码为 200。测试 App 后台按照防盗链生成规则,派发带有防盗链参数的 URL,并使用测试客户端进行验证。
7. 正式 App 后台生成带防盗链参数的 URL
测试环境验证后,业务正式 App 后台派发带防盗链参数的 URL,派发规则与测试 App 后台一致。
8. 点播默认域名开启防盗链
先在控制台打开点播预置测试域名的“Key 防盗链”,复制测试域名的防盗链 Key。然后打开点播默认域名的“Key 防盗链”,把测试域名的 Key 粘贴在“防盗链 Key”文本框中,单击确定保存。
域名配置生效后,防盗链配置就会被应用到现网使用的点播默认域名,并正式生效。