文档中心>云点播>实践教程>分发播放>如何测试生成的防盗链

如何测试生成的防盗链

最近更新时间:2021-11-09 11:20:04

我的收藏

简介

云点播提供了 防盗链 功能,开发者可以根据实际需要,对视频播放 URL 使用的域名合理设置防盗链,实现对用户视频播放行为的控制。
然而,不经测试就对使用中的域名设置防盗链有以下风险:
可能导致现网用户播放失败。
可能未达到播放控制的效果。
例如,开发者希望对视频播放 URL 的有效期进行控制,就需要启用 KEY 防盗链
如果生成的防盗链中签名参数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. 点播默认域名开启防盗链。

背景



用户(例中 appid 为125xxx655)登录云点播控制台,在 域名管理 将看到以下两种域名:
预置点播域名(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”文本框中,单击确定保存。
域名配置生效后,防盗链配置就会被应用到现网使用的点播默认域名,并正式生效。