|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Created by PhpStorm.
|
|
|
|
* User: zhl
|
|
|
|
* Date: 2024/8/20
|
|
|
|
* Time: 11:01
|
|
|
|
*/
|
|
|
|
namespace App\Services;
|
|
|
|
|
|
|
|
class UpyunService
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* 刷新进度查询
|
|
|
|
* @param $task_id
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function purgePull($task_id)
|
|
|
|
{
|
|
|
|
$action = '/purge';
|
|
|
|
if (FALSE == is_array($task_id))
|
|
|
|
$task_id = [$task_id];
|
|
|
|
$task_ids = implode(',', $task_id);
|
|
|
|
$param = [
|
|
|
|
'task_ids' => $task_ids, // 需要查询进度的 task_id
|
|
|
|
];
|
|
|
|
list($status, $result) = $this->curlRequest($action, $param, 'GET', $this->getHeader());
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* URL 刷新
|
|
|
|
* @param $url
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function purgePush($url)
|
|
|
|
{
|
|
|
|
$action = '/purge';
|
|
|
|
if (FALSE == is_array($url))
|
|
|
|
$url = [$url];
|
|
|
|
$urls = implode(PHP_EOL, $url);
|
|
|
|
$param = [
|
|
|
|
'bucket' => '',
|
|
|
|
'urls' => $urls, // 需要批量刷新的文件 URL,多个 URL 通过换行符分隔
|
|
|
|
];
|
|
|
|
list($status, $result) = $this->curlRequest($action, $param, 'POST', $this->getHeader());
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* URL 预热
|
|
|
|
* @param $url
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function preheatPush($url)
|
|
|
|
{
|
|
|
|
$action = '/preheat';
|
|
|
|
if (FALSE == is_array($url))
|
|
|
|
$url = [$url];
|
|
|
|
$urls = implode(PHP_EOL, $url);
|
|
|
|
$param = [
|
|
|
|
'bucket' => '',
|
|
|
|
'urls' => $urls, // 需要批量刷新的文件 URL,多个 URL 通过换行符分隔
|
|
|
|
'range_bytes' => ''
|
|
|
|
];
|
|
|
|
list($status, $result) = $this->curlRequest($action, $param, 'POST', $this->getHeader());
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 头信息需要携带授权token
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function getHeader()
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
'Authorization: Bearer ' . config('custom.upyun.token'),
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param $url
|
|
|
|
* @param $data
|
|
|
|
* @param string $method
|
|
|
|
* @param array $header
|
|
|
|
* @param int $time_out
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function curlRequest($url, $data, $method = 'POST', $header = [], $time_out = 60)
|
|
|
|
{
|
|
|
|
$url = config('custom.upyun.api_url') . $url;
|
|
|
|
$ch = curl_init();
|
|
|
|
curl_setopt($ch, CURLOPT_TIMEOUT, $time_out);
|
|
|
|
curl_setopt($ch, CURLOPT_URL, $url);
|
|
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
|
|
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
|
|
|
|
if ($data)
|
|
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
|
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, array_merge([
|
|
|
|
'Expect:',
|
|
|
|
'Content-type: application/json',
|
|
|
|
'Accept: application/json',
|
|
|
|
], $header)
|
|
|
|
);
|
|
|
|
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
|
|
|
|
$response = curl_exec($ch);
|
|
|
|
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
|
|
|
curl_close($ch);
|
|
|
|
return [$code, $response];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 创建token
|
|
|
|
* 该功能请不要重复使用
|
|
|
|
* 注意:出于安全考虑,token 只有在调用该接口创建时返回一次,后续无法再通过其他接口查询token值,调用该接口后,请务必记录token值
|
|
|
|
* {"access_token":"fe64817b-1f32-46f3-9ac3-a2993725708a","name":"v6-66c4333f60644","scope":"global","services":[],"created_at":1724134209,"expired_at":9999999999}
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function createToken()
|
|
|
|
{
|
|
|
|
$action = '/oauth/tokens';
|
|
|
|
$param = [
|
|
|
|
'username' => '', // 用户名
|
|
|
|
'password' => '', // 密码
|
|
|
|
'code' => md5(uniqid()), // 20-32位随机字符串,每次请求不能重复。只能包含数字、字母和中划线
|
|
|
|
'name' => 'v6-' . uniqid(), // token 备注名,长度 20 的字符串,不能和其他 token 重复
|
|
|
|
'scope' => 'global', // 权限 Valid Values:'global''bucket''operator''domain''cache''log''stats''oauth''security''srs'
|
|
|
|
// 'expired_at' => '', // integer token 过期时间的秒级时间戳,当该参数不设置时,表示永不过期
|
|
|
|
];
|
|
|
|
list($status, $result) = $this->curlRequest($action, $param);
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
} |
|
|
\ No newline at end of file |
...
|
...
|
|