七牛云5:付费视频防盗链-私有资源下载

蛰伏已久 蛰伏已久 2018-01-10

最近在研究付费视频,如何防止别人通过查看视频链接而盗链,正好看到七牛云的私有资源功能,感觉还是比较适合的。


七牛云存储空间分为公开空间和私有空间,公开空间只要获取资源地址,即可访问,而

私有资源,只有资源地址是无法访问的,比如这个视频

http://or8cyfw8z.bkt.clouddn.com/movie.mp4



私有资源下载是通过HTTP GET的方式访问特定的 URL。私有资源URL与公开资源URL相比只是增加了两个参数e和token,分别表示过期时间和下载凭证。一个完整的私有资源 URL 如下所示:

http://<domain>/<key>?e=<deadline>&token=<downloadToken>


参数e表示 URL 的过期时间,采用Unix时间戳,单位为秒。超时的访问将返回 401 错误。参数token表示下载凭证。下载凭证是对资源访问的授权,不带下载凭证或下载凭证不合法都会导致 401 错误,表示验证失败。


利用七牛云的SDK很容易生成这个私有资源链接,$auth->privateDownloadUrl两个参数,第一个是资源的原始url地址,第二个参数是有效时间,单位为秒。

$accessKey = '*****';
$secretKey = '*****';
$auth = new Auth($accessKey, $secretKey);

$baseUrl = 'http://yourdomain.clouddn.com/movie.mp4';

return $signedUrl = $auth->privateDownloadUrl($baseUrl,3600);;



将这个$signedUrl返回给用户,即可访问资源啦,即使有人通过源代码找出了视频地址,过了指定时间也会无法访问。


不过可惜的是!!!!!竟然过了失效时间,还能访问,七牛客服说存在缓存,建议采用时间戳防盗链功能,后面我在试验,成功了继续分享给大家。

分享到

点赞(3)