资讯专栏INFORMATION COLUMN

阿里云视频直播的相关准本工作(验签)

Kosmos / 3336人阅读

摘要:阿里云手册里写了的我就不再赘述。我在阿里云下工单问出来的都是错的好在后来自己弄出来了里面的参数也是个坑里面是拼接出来的最开始以为函数能直接获取。

简单说下 开发中遇到的坑。这里用到的是 阿里云的视频直播服务,其实坑还是挺多的。
阿里云手册里写了的我就不再赘述。直接上代码(基于tp3.2)

验签

</>复制代码

  1. /**
  2. * 模拟GET
  3. */
  4. public function httpsGet( $url, $post="",$json=true ) {
  5. date_default_timezone_set("UTC");
  6. $Timestamp = date("c");
  7. $Timestamp = explode("+",$Timestamp);
  8. if( is_array( $post ) ){
  9. $public = [
  10. "Version"=>"2016-11-01",
  11. "Format"=> "json",
  12. "AccessKeyId"=>$this->AccessKeyId,
  13. "SignatureMethod"=>"HMAC-SHA1",
  14. "Timestamp"=>$Timestamp[0]."Z",
  15. "SignatureVersion"=>"1.0",
  16. "SignatureNonce"=>$this->uuid(),
  17. ];
  18. $post = array_merge($public,$post);
  19. $Signature = self::getSignature($post,$this->AccessKeySecret);
  20. foreach( $post as $key => $value )
  21. {
  22. $param .= $key . "=" . $value . "&";
  23. }
  24. $param .="Signature=".$Signature;
  25. $urls = $url . "?" .$param;
  26. }else{
  27. $urls = $url;
  28. }
  29. //初始化
  30. $curl = curl_init();
  31. //设置抓取的url
  32. curl_setopt( $curl, CURLOPT_URL, $urls );
  33. //设置获取的信息以文件流的形式返回,而不是直接输出。
  34. curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
  35. curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
  36. curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, false );
  37. //执行命令
  38. $result = curl_exec($curl);
  39. //获取服务器响应状态
  40. $httpCode = curl_getinfo( $curl , CURLINFO_HTTP_CODE );
  41. //关闭URL请求
  42. curl_close($curl);
  43. $result = json_decode( $result , true );
  44. return $result;
  45. }
  46. public function getSignature($parameters, $access_key_secret){
  47. ksort($parameters);
  48. $StringToSign = "GET&".urlencode("/")."&";
  49. $q_str = "";
  50. foreach($parameters as $key=>$kval){
  51. $q_str .= urlencode($key)."=".urlencode($kval)."&";
  52. }
  53. $q_str = substr($q_str,0,-1);
  54. $StringToSign .= urlencode($q_str);
  55. $ok_url = urlencode(base64_encode(hash_hmac("sha1",$StringToSign,$access_key_secret."&",true)));
  56. return $ok_url;
  57. }
  58. public function uuid($prefix = "")
  59. {
  60. $chars = md5(uniqid(mt_rand(), true));
  61. $uuid = substr($chars,0,8) . "-";
  62. $uuid .= substr($chars,8,4) . "-";
  63. $uuid .= substr($chars,12,4) . "-";
  64. $uuid .= substr($chars,16,4) . "-";
  65. $uuid .= substr($chars,20,12);
  66. return $prefix . $uuid;
  67. }

获取验签的方法是个坑。我在阿里云下工单问出来demo的都是错的-.-
好在后来自己弄出来了

httpget 里面的 Timestamp参数也是个坑demo里面是拼接出来的(最开始以为函数能直接获取)。
最后 我在自己开发的时候 百度了很多,但是帮助并不 希望这些代码能帮到正在准备研究直播的你。。。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23163.html

相关文章

  • 回眸曾经项目,与第三方支付相关,所带来沟通问题

    摘要:钱可以存储在自己的余额中,这就相当于微信钱包,余额可以提现到银行卡的中。我们的第三方支付平台是连连支付,杭州的一家公司。私钥怎么加签每个公司的加签方式是不一样的,支付宝有支付宝的加签方式,微信有微信的加签方式。 导读 笔者在校期间,通过自学java。学校里也开过这门课,但是,讲的都是一些基础,比如java的表达式、基本类型、自定义类型等等。也都是很基础的东西,就连lambda表达式都没...

    kaka 评论0 收藏0
  • 【大量干货】史上最完整Tengine HTTPS原理解析、实践与调试

    摘要:内容主要有四个方面趋势基础实践调试。一趋势这一章节主要介绍近几年和未来的趋势,包括两大浏览器和对的态度,以及淘宝天猫和阿里云的实践情况。完整性是指为了避免网络中传输的数据被非法篡改,使用算法来保证消息的完整性。 摘要: 本文邀请阿里云CDN HTTPS技术专家金九,分享Tengine的一些HTTPS实践经验。内容主要有四个方面:HTTPS趋势、HTTPS基础、HTTPS实践、HTTPS...

    snowell 评论0 收藏0
  • 视频转码技术指南:国内主流转码服务提供商对比测评

    摘要:今天,我们挑选了国内主流的三家音视频转码服务提供商阿里云腾讯云七牛云,进行横向测评,从产品功能转码性能控制台及文档售后支持服务可用性收费标准六个方面,逐一进行客观的对比说明,希望给予正在技术选型中的开发者一些参考。 摘要: 随着大量视频产生,怎样才能够高效精准地对视频进行云端转码和处理,来适配多终端展示需求和应对复杂的网络情况,是我们视频行业开发人员工作的重中之重。作为从业者,我们会经...

    zollero 评论0 收藏0
  • 阿里AI如何助攻世界杯?视频集锦背后技术实践

    摘要:可预见的未来激情赛事已经过半,阿里云视频技术在本次世界杯中也成功落地,而这并不是结局,这是将视频应用于体育行业以及更多其他行业的开端。 本届世界杯互联网直播的顺利进行,离不开各大云计算厂商的支持。在这其中,阿里云是当之无愧的C位,除了优酷外,阿里云还支撑了CNTV、CCTV5客户端,为全网70%的世界杯直播流量保驾护航。 对于世界杯这种超大观看量级、超强影响力的重要体育赛事,阿里云一直...

    BothEyes1993 评论0 收藏0
  • 阿里数据库开了一个未来大会,谈了谈2038年数据库趋势

    摘要:月日,在北京举行的阿里云云数据库智能未来大会上,阿里云高级产品专家王义成如是说。今天,阿里云发布了,,三款全新的数据库,正式向开始融合。 摘要: 未来的某一天,量子数据库是我们改造其他星球的关键技术之一。 1月17日,在北京举行的阿里云2018云数据库智能未来大会上,阿里云高级产品专家王义成如是说。 除了阿里云的全新一代NoSQL向NewSQL融合,NewSQL产品家族发布,在这场大会...

    CntChen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<