VideoDemand.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. namespace app\api\controller;
  3. use AlibabaCloud\Client\AlibabaCloud;
  4. use AlibabaCloud\Client\Exception\ClientException;
  5. use AlibabaCloud\Client\Exception\ServerException;
  6. use AlibabaCloud\SDK\Vod\V20170321 as Vod;
  7. //require '../vendor/autoload.php';
  8. require_once '../vendor/aliyunmail/aliyun-php-sdk-core/Config.php'; // 假定您的源码文件和aliyun-php-sdk处于同一目录
  9. require __DIR__ . '/vendor/autoload.php';
  10. /**
  11. * @title 阿里云视频点播
  12. * @controller VideoDemand
  13. * @group base
  14. */
  15. class VideoDemand extends Base
  16. {
  17. protected $account_name = 'vod@1122764885952286.onaliyun.com'; // 账号
  18. protected $login_secret = 'NKna#5y1mKBp58k)qqwJHhRcrUE!{ECT';// 密码
  19. protected $account_uid = '285664060640337784';// uid
  20. protected $access_key = 'LTAI5tN5SwDsN2km6PgZPScp';// key
  21. protected $access_secret = 'SqRcmQNYG8d7l2vjDLpVvibwT59bSj';//secret
  22. protected $role_arn= 'acs:ram::1122764885952286:role/voderole';//role_arn
  23. protected $role_session_name= 'voderole';//role_session_name
  24. /**
  25. * @title 获取视频播放凭证[STS方式]
  26. * @desc 获取视频播放凭证[STS方式]
  27. * @author qc
  28. * @url /api/Video_demand/getVideoCredentials
  29. * @method GET
  30. * @tag 视频播放凭证
  31. * @header name:Authorization require:1 desc:Token
  32. * @return name:RequestId type:string default:-- desc:RequestId
  33. * @return name:Arn type:string default:-- desc:RoleArn(Arn)
  34. * @return name:AssumedRoleId type:string default:-- desc:AssumedRoleId
  35. * @return name:SecurityToken type:string default:-- desc:SecurityToken
  36. * @return name:AccessKeyId type:string default:-- desc:AccessKeyId
  37. * @return name:AccessKeySecret type:string default:-- desc:AccessKeySecret
  38. * @return name:Expiration type:string default:-- desc:Expiration
  39. */
  40. public function getVideoCredentials()
  41. {
  42. //构建一个阿里云客户端,用于发起请求。
  43. //设置调用者(RAM用户或RAM角色)的AccessKey ID和AccessKey Secret。
  44. AlibabaCloud::accessKeyClient($this->access_key, $this->access_secret)->regionId('cn-hangzhou')->asDefaultClient();
  45. //设置参数,发起请求。
  46. try {
  47. $result = AlibabaCloud::rpc()
  48. ->product('Sts')
  49. ->scheme('https') // https | http
  50. ->version('2015-04-01')
  51. ->action('AssumeRole')
  52. ->method('POST')
  53. ->host('sts.aliyuncs.com')
  54. ->options([
  55. 'query' => [
  56. 'RegionId' => "cn-hangzhou",
  57. 'RoleArn' => $this->role_arn,
  58. 'RoleSessionName' =>$this->role_session_name,
  59. ],])
  60. ->request();
  61. $ret = $result->toArray();
  62. $ret['Credentials']['region'] = 'cn-shanghai';
  63. $this->success('请求成功',$ret);
  64. } catch (ClientException $e) {
  65. $this->error($e->getErrorMessage() . PHP_EOL);
  66. } catch (ServerException $e) {
  67. $this->error($e->getErrorMessage() . PHP_EOL);
  68. }
  69. }
  70. /**
  71. * @title 获取视频上传凭证
  72. * @desc 获取视频上传凭证
  73. * @author qc
  74. * @url /api/Video_demand/initVodClient
  75. * @method GET
  76. * @tag 视频播放凭证
  77. * @header name:Authorization require:1 desc:Token
  78. */
  79. function initVodClient() {
  80. $regionId = 'cn-shanghai'; // 点播服务接入区域
  81. $profile = \DefaultProfile::getProfile($regionId, $this->access_key, $this->access_secret);
  82. return new \DefaultAcsClient($profile);
  83. }
  84. /**
  85. * 获取音/视频上传地址和凭证
  86. */
  87. function createUploadVideo() {
  88. $client = $this->initVodClient();
  89. $request = new Vod\Models\CreateUploadVideoRequest();
  90. $request->setTitle("Sample Title");
  91. $request->setFileName("videoFile.mov");
  92. $request->setDescription("Video Description");
  93. $request->setCoverURL("http://192.168.0.0/16/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png");
  94. $request->setTags("tag1,tag2");
  95. $request->setAcceptFormat('JSON');
  96. $res = $client->getAcsResponse($request);
  97. var_dump($res);
  98. }
  99. }