CDN主要用于加速静态资源,动态资源会回源站实时获取不进行缓存。可以根据文件类型和更新频率设置资源的缓存过期时间,最长可以设置3年。

CDN提供资源的刷新和预热功能。通过刷新功能,您可以强制CDN节点回源并获取最新文件;通过预热功能您可以在业务高峰前预热热门资源,提高资源访问效率。

刷新功能是指提交URL刷新或目录刷新请求后,CDN节点的缓存内容将会被强制过期,当您向CDN节点请求资源时,CDN会直接回源站获取对应的资源返回给您,并将其缓存。刷新功能会降低缓存命中率。

调用接口刷新节点上的文件内容。被刷新的文件缓存将立即失效,新的请求将回源获取最新的文件,支持URL批量刷新。

命令行刷新脚本

<?php

include __DIR__ . '/vendor/autoload.php';

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;

// Download:https://github.com/aliyun/openapi-sdk-php
// Usage:https://github.com/aliyun/openapi-sdk-php

if (count($argv) != 2) {
    echo "参数错误";
    exit;
}

$accessKeyId = '<accessKeyId>';
$accessSecret = '<accessSecret>';
$project = $argv[1];
$path = "https://www.yourdomain.com/{$project}/";

AlibabaCloud::accessKeyClient($accessKeyId, $accessSecret)
    ->regionId('cn-qingdao')
    ->asDefaultClient();

try {
    $result = AlibabaCloud::cdn()
        ->v20180510()
        ->refreshObjectCaches()
        ->withObjectType("Directory")
        ->withObjectPath($path)
        ->withSecurityToken($accessKeyId)
        ->debug(true) // Enable the debug will output detailed information
        ->request();
    print_r($result->toArray());
} catch (ClientException $e) {
    print_r($e->getErrorMessage());
} catch (ServerException $e) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

参考:

配置缓存过期时间

配置刷新和预热

调用API刷新节点上的文件内容


小伍
139 声望4 粉丝

引用和评论

0 条评论