Merge branch 'zhl' of http://47.244.231.31:8099/zhl/globalso-v6 into master-server
正在显示
2 个修改的文件
包含
139 行增加
和
1 行删除
app/Services/UpyunService.php
0 → 100644
| 1 | +<?php | ||
| 2 | +/** | ||
| 3 | + * Created by PhpStorm. | ||
| 4 | + * User: zhl | ||
| 5 | + * Date: 2024/8/20 | ||
| 6 | + * Time: 11:01 | ||
| 7 | + */ | ||
| 8 | +namespace App\Services; | ||
| 9 | + | ||
| 10 | +class UpyunService | ||
| 11 | +{ | ||
| 12 | + /** | ||
| 13 | + * 刷新进度查询 | ||
| 14 | + * @param $task_id | ||
| 15 | + * @return mixed | ||
| 16 | + */ | ||
| 17 | + public function purgePull($task_id) | ||
| 18 | + { | ||
| 19 | + $action = '/purge'; | ||
| 20 | + if (FALSE == is_array($task_id)) | ||
| 21 | + $task_id = [$task_id]; | ||
| 22 | + $task_ids = implode(',', $task_id); | ||
| 23 | + $param = [ | ||
| 24 | + 'task_ids' => $task_ids, // 需要查询进度的 task_id | ||
| 25 | + ]; | ||
| 26 | + list($status, $result) = $this->curlRequest($action, $param, 'GET', $this->getHeader()); | ||
| 27 | + return $result; | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + /** | ||
| 31 | + * URL 刷新 | ||
| 32 | + * @param $url | ||
| 33 | + * @return mixed | ||
| 34 | + */ | ||
| 35 | + public function purgePush($url) | ||
| 36 | + { | ||
| 37 | + $action = '/purge'; | ||
| 38 | + if (FALSE == is_array($url)) | ||
| 39 | + $url = [$url]; | ||
| 40 | + $urls = implode(PHP_EOL, $url); | ||
| 41 | + $param = [ | ||
| 42 | + 'bucket' => '', | ||
| 43 | + 'urls' => $urls, // 需要批量刷新的文件 URL,多个 URL 通过换行符分隔 | ||
| 44 | + ]; | ||
| 45 | + list($status, $result) = $this->curlRequest($action, $param, 'POST', $this->getHeader()); | ||
| 46 | + return $result; | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + /** | ||
| 50 | + * URL 预热 | ||
| 51 | + * @param $url | ||
| 52 | + * @return mixed | ||
| 53 | + */ | ||
| 54 | + public function preheatPush($url) | ||
| 55 | + { | ||
| 56 | + $action = '/preheat'; | ||
| 57 | + if (FALSE == is_array($url)) | ||
| 58 | + $url = [$url]; | ||
| 59 | + $urls = implode(PHP_EOL, $url); | ||
| 60 | + $param = [ | ||
| 61 | + 'bucket' => '', | ||
| 62 | + 'urls' => $urls, // 需要批量刷新的文件 URL,多个 URL 通过换行符分隔 | ||
| 63 | + 'range_bytes' => '' | ||
| 64 | + ]; | ||
| 65 | + list($status, $result) = $this->curlRequest($action, $param, 'POST', $this->getHeader()); | ||
| 66 | + return $result; | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + /** | ||
| 70 | + * 头信息需要携带授权token | ||
| 71 | + * @return array | ||
| 72 | + */ | ||
| 73 | + public function getHeader() | ||
| 74 | + { | ||
| 75 | + return [ | ||
| 76 | + 'Authorization: Bearer ' . config('custom.upyun.token'), | ||
| 77 | + ]; | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + /** | ||
| 81 | + * @param $url | ||
| 82 | + * @param $data | ||
| 83 | + * @param string $method | ||
| 84 | + * @param array $header | ||
| 85 | + * @param int $time_out | ||
| 86 | + * @return array | ||
| 87 | + */ | ||
| 88 | + public function curlRequest($url, $data, $method = 'POST', $header = [], $time_out = 60) | ||
| 89 | + { | ||
| 90 | + $url = config('custom.upyun.api_url') . $url; | ||
| 91 | + $ch = curl_init(); | ||
| 92 | + curl_setopt($ch, CURLOPT_TIMEOUT, $time_out); | ||
| 93 | + curl_setopt($ch, CURLOPT_URL, $url); | ||
| 94 | + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); | ||
| 95 | + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); | ||
| 96 | + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); | ||
| 97 | + if ($data) | ||
| 98 | + curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); | ||
| 99 | + curl_setopt($ch, CURLOPT_HTTPHEADER, array_merge([ | ||
| 100 | + 'Expect:', | ||
| 101 | + 'Content-type: application/json', | ||
| 102 | + 'Accept: application/json', | ||
| 103 | + ], $header) | ||
| 104 | + ); | ||
| 105 | + curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); | ||
| 106 | + $response = curl_exec($ch); | ||
| 107 | + $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); | ||
| 108 | + curl_close($ch); | ||
| 109 | + return [$code, $response]; | ||
| 110 | + } | ||
| 111 | + | ||
| 112 | + /** | ||
| 113 | + * 创建token | ||
| 114 | + * 该功能请不要重复使用 | ||
| 115 | + * 注意:出于安全考虑,token 只有在调用该接口创建时返回一次,后续无法再通过其他接口查询token值,调用该接口后,请务必记录token值 | ||
| 116 | + * {"access_token":"fe64817b-1f32-46f3-9ac3-a2993725708a","name":"v6-66c4333f60644","scope":"global","services":[],"created_at":1724134209,"expired_at":9999999999} | ||
| 117 | + * @return mixed | ||
| 118 | + */ | ||
| 119 | + public function createToken() | ||
| 120 | + { | ||
| 121 | + $action = '/oauth/tokens'; | ||
| 122 | + $param = [ | ||
| 123 | + 'username' => '', // 用户名 | ||
| 124 | + 'password' => '', // 密码 | ||
| 125 | + 'code' => md5(uniqid()), // 20-32位随机字符串,每次请求不能重复。只能包含数字、字母和中划线 | ||
| 126 | + 'name' => 'v6-' . uniqid(), // token 备注名,长度 20 的字符串,不能和其他 token 重复 | ||
| 127 | + 'scope' => 'global', // 权限 Valid Values:'global''bucket''operator''domain''cache''log''stats''oauth''security''srs' | ||
| 128 | +// 'expired_at' => '', // integer token 过期时间的秒级时间戳,当该参数不设置时,表示永不过期 | ||
| 129 | + ]; | ||
| 130 | + list($status, $result) = $this->curlRequest($action, $param); | ||
| 131 | + return $result; | ||
| 132 | + } | ||
| 133 | +} |
| @@ -24,5 +24,10 @@ return [ | @@ -24,5 +24,10 @@ return [ | ||
| 24 | ["69.172.229.12","69.172.229.13","69.172.229.14","69.172.229.15","69.172.229.16","69.172.229.36","69.172.229.59","69.172.229.60","69.172.229.61","69.172.229.62","69.172.229.63","69.172.229.64","69.172.229.65"], | 24 | ["69.172.229.12","69.172.229.13","69.172.229.14","69.172.229.15","69.172.229.16","69.172.229.36","69.172.229.59","69.172.229.60","69.172.229.61","69.172.229.62","69.172.229.63","69.172.229.64","69.172.229.65"], |
| 25 | ["69.172.233.75","69.172.233.76","69.172.233.77","69.172.233.78","69.172.233.79","69.172.233.80","69.172.233.81","69.172.233.82","69.172.233.83","69.172.233.84","69.172.233.85","69.172.233.86","69.172.233.87"], | 25 | ["69.172.233.75","69.172.233.76","69.172.233.77","69.172.233.78","69.172.233.79","69.172.233.80","69.172.233.81","69.172.233.82","69.172.233.83","69.172.233.84","69.172.233.85","69.172.233.86","69.172.233.87"], |
| 26 | ["76.74.220.18","76.74.220.19","76.74.220.20","76.74.220.21","76.74.220.22","76.74.220.23","76.74.220.24","76.74.220.25","76.74.220.26","76.74.220.27","76.74.220.28","76.74.220.29","76.74.220.30"], | 26 | ["76.74.220.18","76.74.220.19","76.74.220.20","76.74.220.21","76.74.220.22","76.74.220.23","76.74.220.24","76.74.220.25","76.74.220.26","76.74.220.27","76.74.220.28","76.74.220.29","76.74.220.30"], |
| 27 | - ["64.34.205.152","64.34.205.170","64.34.205.171","64.34.205.172","64.34.205.173","64.34.205.174","64.34.205.210","64.34.205.211","64.34.205.212","64.34.205.213","64.34.205.214","64.34.205.215","64.34.205.216"]] | 27 | + ["64.34.205.152","64.34.205.170","64.34.205.171","64.34.205.172","64.34.205.173","64.34.205.174","64.34.205.210","64.34.205.211","64.34.205.212","64.34.205.213","64.34.205.214","64.34.205.215","64.34.205.216"]], |
| 28 | + | ||
| 29 | + 'upyun' => [ | ||
| 30 | + 'api_url' => 'https://api.upyun.com', | ||
| 31 | + 'token' => 'fe64817b-1f32-46f3-9ac3-a2993725708a', | ||
| 32 | + ], | ||
| 28 | ]; | 33 | ]; |
-
请 注册 或 登录 后发表评论