0
点赞
收藏
分享

微信扫一扫

七牛删除资源并刷新CDN

小猪肥 2022-01-12 阅读 42

问题:当调用七牛删除资源接口后,因为有CDN缓存,如果在后台设置CDN缓存的时间过长,资源就会一直存在,要调用CDN接口刷新。

七牛vendor包:qiniu/php-sdk

参考:https://developer.qiniu.com/kodo/1241/php

PHP代码:

<?php

use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
use Qiniu\Cdn\CdnManager;


class Test 
{

    // 处理逻辑
    public function demo()
    {
        $bucket = config('qiniu.public.bucket');
        $accessKey = config('qiniu.public.accessKey');
        $secretKey = config('qiniu.public.secretKey');

        $auth = new Auth($accessKey, $secretKey);
        $config = new Config();

        // 详细文件名,要写全路径
        $key = "test.jpg";

        // 删除指定资源
        // 参考文档:https://developer.qiniu.com/kodo/api/1257/delete

        $bucketManager = new BucketManager($auth, $config);

        list ($ret, $error) = $bucketManager->delete($bucket, $key);
        //var_dump($ret);
        //var_dump($error);

        if ($error != null) {
            // \Qiniu\Http\Error类的response属性是私有的,需要做反射处理才能访问
            // 获取反射类及反射属性
            $ref_error = new \ReflectionClass('\Qiniu\Http\Error');
            // 获取私有属性
            $property = $ref_error->getProperty("response");
            // 设置属性可访问
            $property->setAccessible(true);
            // 注意:只能通过 ReflectionProperty 实例的 getValue 方法访问
            $response = $property->getValue($error);
            $error_message = $response->error;
            var_dump($error_message);
            exit;
        }
        

        // 刷新CDN
        // 参考文档:http://developer.qiniu.com/article/fusion/api/refresh.html

        // 文件完整地址
        $urls = array(
            "https://xxx.com/test.jpg",
        );

        $cdnManager = new CdnManager($auth);

        list ($refreshResult, $refreshErr) = $cdnManager->refreshUrls($urls);
        //var_dump($refreshResult);
        //var_dump($refreshErr);exit;

        if ($refreshErr != null) {
            // 报错
            var_dump($refreshErr);
        } else {
            var_dump($refreshResult['code']);
        }
        exit;
    }

}
举报

相关推荐

0 条评论