|
今天更改了一个线上的css文件,由于项目部署了cdn,需要对缓存进行清理。有两种方式;
一、清除cdn缓存
二、更改页面引入文件地址,如加入版本号
第一种方式需要登录阿里云,然后进行缓存清理操作,比较麻烦;
第二种方式如果是涉及的页面数量过多,在更改起来也是非常麻烦的。
我们使用的阿里云的cdn产品,记得以往的产品都有api接口,想通过阿里云cdn接口模式对链接进行缓存清除操作。
下面是php实例:
一、安装SDK
使用composer进行安装,命令:
composer require alibabacloud/client
二、获取阿里云参数
1、accessKeyId
2、accessSecret
建议使用子密钥
-
<?php
-
-
-
-
-
-
-
-
namespace App\index\controller;
-
-
use AlibabaCloud\Client\AlibabaCloud;
-
use AlibabaCloud\Client\Exception\ClientException;
-
use AlibabaCloud\Client\Exception\ServerException;
-
use think\Controller;
-
use think\Request;
-
-
class Cdn extends Controller
-
{
-
protected $accessKeyId;
-
protected $accessSecret;
-
-
public function __construct(Request $request = null)
-
{
-
parent::__construct($request);
-
$this->accessKeyId = '123456789';
-
$this->accessSecret = '123456789';
-
}
-
-
public function index()
-
{
-
$url = 'http://www.demo.com/css/index.css';
-
AlibabaCloud::accessKeyClient($this->accessKeyId, $this->accessSecret)
-
->regionId('cn-hangzhou')
-
->asDefaultClient();
-
try {
-
$result = AlibabaCloud::rpc()
-
->product('Cdn')
-
-
->version('2018-05-10')
-
->action('RefreshObjectCaches')
-
->method('POST')
-
->host('cdn.aliyuncs.com')
-
->options([
-
'query' => [
-
'RegionId' => "cn-hangzhou",
-
'ObjectPath' => $url,
-
],
-
])
-
->request();
-
$res = $result->toArray();
-
if(isset($res['RefreshTaskId'])) {
-
echo '刷新成功';
-
} else {
-
echo '刷新失败';
-
}
-
}
-
catch(ClientException $e) {
-
echo $e->getErrorMessage() . PHP_EOL;
-
}
-
catch(ServerException $e) {
-
echo $e->getErrorMessage() . PHP_EOL;
-
}
-
-
}
-
}
建议在提交刷新后,2分钟后查看效果,注意要清除浏览器缓存哦! |