HuaWeiCloudService.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. namespace app\service;
  3. use HuaweiCloud\SDK\Cdn\V1\CdnClient;
  4. use HuaweiCloud\SDK\Cdn\V1\Model\CreatePreheatingTasksRequest;
  5. use HuaweiCloud\SDK\Cdn\V1\Model\CreateRefreshTasksRequest;
  6. use HuaweiCloud\SDK\Cdn\V1\Model\PreheatingTaskRequest;
  7. use HuaweiCloud\SDK\Cdn\V1\Model\PreheatingTaskRequestBody;
  8. use HuaweiCloud\SDK\Cdn\V1\Model\RefreshTaskRequest;
  9. use HuaweiCloud\SDK\Cdn\V1\Model\RefreshTaskRequestBody;
  10. use HuaweiCloud\SDK\Cdn\V1\Model\ShowUrlTaskInfoRequest;
  11. use HuaweiCloud\SDK\Core\Auth\GlobalCredentials;
  12. use HuaweiCloud\SDK\Core\Exceptions\RequestTimeoutException;
  13. use HuaweiCloud\SDK\Core\Exceptions\ServiceResponseException;
  14. use HuaweiCloud\SDK\Core\Http\HttpConfig;
  15. use MongoDB\Driver\Exception\ConnectionException;
  16. use think\Env;
  17. class HuaWeiCloudService
  18. {
  19. /**
  20. * 创建预热缓存任务
  21. */
  22. public function createPreheatingTasks($urls = []){
  23. if(!$urls){
  24. return false;
  25. }
  26. $ak = HW_OBS_ACCESS_KEYID;
  27. $sk = HW_OBS_ACCESS_KEYSECRET;
  28. $endpoint = 'https://cdn.myhuaweicloud.com';
  29. $domainId = HW_DOMAIN_ID;
  30. $credentials = new GlobalCredentials($ak, $sk, $domainId);
  31. $config = HttpConfig::getDefaultConfig();
  32. $config->setIgnoreSslVerification(true);
  33. $client = CdnClient::newBuilder(new CdnClient)
  34. ->withHttpConfig($config)
  35. ->withEndpoint($endpoint)
  36. ->withCredentials($credentials)
  37. ->build();
  38. $request = new CreatePreheatingTasksRequest();
  39. $body = new PreheatingTaskRequest();
  40. // $listPreheatingTaskUrls = array();
  41. // array_push($listPreheatingTaskUrls,"https://static.46yx.com/test/icon.png");
  42. $preheatingTaskbody = new PreheatingTaskRequestBody();
  43. $preheatingTaskbody->setUrls($urls);
  44. $body->setPreheatingTask($preheatingTaskbody);
  45. $request->setBody($body);
  46. try {
  47. $response = $client->CreatePreheatingTasks($request);
  48. return true;
  49. } catch (ConnectionException $e) {
  50. $template = 'cdn创建缓存异常,' . $e->getMessage() . '时间:' . date('Y-m-d H:i:s');
  51. $ddurl = Env::get('dingtalk.warning_url');
  52. curlDD($template, $ddurl, true);
  53. } catch (RequestTimeoutException $e) {
  54. $template = 'cdn创建缓存异常,' . $e->getMessage() . '时间:' . date('Y-m-d H:i:s');
  55. $ddurl = Env::get('dingtalk.warning_url');
  56. curlDD($template, $ddurl, true);
  57. } catch (ServiceResponseException $e) {
  58. $template = 'cdn创建缓存异常,' . $e->getHttpStatusCode() . "\n" . $e->getErrorCode() . "\n" . $e->getErrorMsg() . "\n" . '时间:' . date('Y-m-d H:i:s');
  59. $ddurl = Env::get('dingtalk.warning_url');
  60. curlDD($template, $ddurl, true);
  61. }
  62. }
  63. /**
  64. * 创建刷新缓存任务
  65. */
  66. public function createRefreshTasks($urls = [])
  67. {
  68. if(!$urls){
  69. return false;
  70. }
  71. $ak = HW_OBS_ACCESS_KEYID;
  72. $sk = HW_OBS_ACCESS_KEYSECRET;
  73. $endpoint = 'https://cdn.myhuaweicloud.com';
  74. $domainId = HW_DOMAIN_ID;
  75. $credentials = new GlobalCredentials($ak, $sk, $domainId);
  76. $config = HttpConfig::getDefaultConfig();
  77. $config->setIgnoreSslVerification(true);
  78. $client = CdnClient::newBuilder(new CdnClient)
  79. ->withHttpConfig($config)
  80. ->withEndpoint($endpoint)
  81. ->withCredentials($credentials)
  82. ->build();
  83. $request = new CreateRefreshTasksRequest();
  84. $body = new RefreshTaskRequest();
  85. // $listRefreshTaskUrls = $urls;
  86. // array_push($listRefreshTaskUrls, "https://static.46yx.com/test/icon.png");
  87. $refreshTaskbody = new RefreshTaskRequestBody();
  88. $refreshTaskbody->setType("file")
  89. ->setUrls($urls);
  90. $body->setRefreshTask($refreshTaskbody);
  91. $request->setBody($body);
  92. try {
  93. $response = $client->CreateRefreshTasks($request);
  94. echo "\n";
  95. echo $response;
  96. } catch (ConnectionException $e) {
  97. $msg = $e->getMessage();
  98. echo "\n" . $msg . "\n";
  99. } catch (RequestTimeoutException $e) {
  100. $msg = $e->getMessage();
  101. echo "\n" . $msg . "\n";
  102. } catch (ServiceResponseException $e) {
  103. echo "\n";
  104. echo $e->getHttpStatusCode() . "\n";
  105. echo $e->getErrorCode() . "\n";
  106. echo $e->getErrorMsg() . "\n";
  107. }
  108. }
  109. public function showUrlTaskInfo()
  110. {
  111. $ak = "QLQDGJW1PRU6RFVALSJB";
  112. $sk = "FWccYNCnpnzi6tKsDyROQMYyVrIledqziRZmt5Fw";
  113. $endpoint = "https://cdn.myhuaweicloud.com";
  114. $domainId = "0c8c75773e00f2350f9dc018374f3600";
  115. $credentials = new GlobalCredentials($ak, $sk, $domainId);
  116. $config = HttpConfig::getDefaultConfig();
  117. $config->setIgnoreSslVerification(true);
  118. $client = CdnClient::newBuilder(new CdnClient)
  119. ->withHttpConfig($config)
  120. ->withEndpoint($endpoint)
  121. ->withCredentials($credentials)
  122. ->build();
  123. $request = new ShowUrlTaskInfoRequest();
  124. $request->setOffset(1);
  125. $request->setLimit(10);
  126. $request->setTaskType("REFRESH");
  127. $request->setFileType("file");
  128. try {
  129. $response = $client->ShowUrlTaskInfo($request);
  130. echo "\n";
  131. echo $response;
  132. } catch (ConnectionException $e) {
  133. $msg = $e->getMessage();
  134. echo "\n" . $msg . "\n";
  135. } catch (RequestTimeoutException $e) {
  136. $msg = $e->getMessage();
  137. echo "\n" . $msg . "\n";
  138. } catch (ServiceResponseException $e) {
  139. echo "\n";
  140. echo $e->getHttpStatusCode() . "\n";
  141. echo $e->getErrorCode() . "\n";
  142. echo $e->getErrorMsg() . "\n";
  143. }
  144. }
  145. }