上傳到騰訊云上面的視頻,如何實作防盜鏈?
當我們的視頻放到,騰訊云上面,如何實作實作指定過期時間,防止他人盜刷流量,這就要用到,騰訊云key防盜鏈技術,這個技術有什么用呢?
- 視頻 URL 中指定過期時間,他人獲取后無法長期使用
- 在視頻 URL 中指定最大允許播放 IP 數,他人獲取后不能無限制地分發給更多人觀看
- CDN 節點檢查視頻 URL 中的引數和簽名,對視頻播放請求進行控制,如果請求檢查不通過,則回傳403回應碼
接下來就是怎么用php實作了,大致程序先看一遍查看一下官方檔案了解一下程序,
實作加密
1.打開騰訊云視頻開啟key防盜鏈


這是一串加密密鑰,先復制下來,接下來有用,
2.匯入csv檔案到資料庫

里面會給到播放地址一些的東西,如果匯入不進去可以去https://blog.csdn.net/qq_38149009/article/details/81166319,看一下,
3.實作加密
代碼可以用這個搬過去,只要把你的key替換一下,我用是tp6開發,獲取資料庫的資料,具體看自己專案,跟著來,
public function secret(Request $request)
{
//分頁處理
$where = Util::getMore([
['page',1],
['limit',20]
]);
$long = new Video();
//獲取資料
$data = $long->order('ID','asc')->field('video,title,play,cover')->page($where['page'],$where['limit'])->select();
if(empty($data)){
$this->success('成功',[]);
}
$res = [];
foreach($data as $item){
$item['play'] = intval($item['play']);
//替換域名,可以根據自己的來,不改的話,會報錯
$temp=str_replace('http://1500005512.vod2.myqcloud.com','',$item['video']);
$dirr = $this->lst($temp);
//替換成自己的key
$key = 'v3Pz10kGbn6HssfXoKK3';
// 過期時間秒;
$now = time();
$next = $now + 1*60*60;
// 生成16進制
$overtime = dechex($next);
// 生成sig
$str = $key.$dirr.$overtime;
$sign = md5($str);
$item['video'] = $item['video'] . '?t=' . $overtime .'&sign=' . $sign;
$rel[] = $item;
}
$ress = [];
foreach($rel as $item){
//urlen編碼
$item['video'] = urlencode($item['video']);
$ress[] = $item;
}
return success("ok",$ress);
}
用postman,發送資料,生成的key,可以用校正工具測驗一下,如果報key無效,一般是生成的密鑰不對,一步一步檢查,發現錯誤
世上什么事逼急了,都能做出來,除了數學題,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287872.html
標籤:其他
