服务端 API 文档

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

如何测试生成的防盗链

最近更新时间:2020-12-22 09:38:57

简介

云点播提供了 防盗链 功能,开发者可以根据实际需要,对视频播放 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】文本框中,单击【确定】保存。

域名配置生效后,防盗链配置就会被应用到现网使用的点播默认域名,并正式生效。

目录