使用腾讯云CDN的SDK 用脚本去刷新URL缓存
· 技术积累 · Python CDN

当需要刷新缓存时候,就要登录腾讯云控制台去刷新,我觉的这就有点费事了。所以腾讯云也提供不同语言相应的SDK。经常远程服务器的话,在服务器上使用 [ 命令 + url ]方式直接刷新缓存多方便(使用这种方式,要保证你的id和key的安全,不要泄露了!)

首先登录腾讯云 -> 右上角头像 -> 访问管理 -> 访问秘钥 -> API秘钥管理 -> 生成下秘钥 -> ( ID和Key )

c1.png

python2和python3 都可以支持,我这里使用python3版本

# 安装sdk包(python2和python3环境都存在的情况,python3使用pip3安装)
pip3 install --upgrade tencentcloud-sdk-python
pip3 install tencentcloud-sdk-python-cdn
c2.png

python脚本,来自官方的代码,我添加了sys模块,可以使用传参的方式

#!/bin/env python3

import sys
import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.cdn.v20180606 import cdn_client, models
try:
    cred = credential.Credential("你的id", "你的key")
    httpProfile = HttpProfile()
    httpProfile.endpoint = "cdn.tencentcloudapi.com"

    clientProfile = ClientProfile()
    clientProfile.httpProfile = httpProfile
    client = cdn_client.CdnClient(cred, "", clientProfile)

    req = models.PurgeUrlsCacheRequest()
    params = {
        "Urls": sys.argv[1:]
    }
    req.from_json_string(json.dumps(params))

    resp = client.PurgeUrlsCache(req)
    print(resp.to_json_string())

except TencentCloudSDKException as err:
    print(err)

执行刷新缓存,效果和控制台一样,也会有域名判断的,在刷新记录中也可以看到执行命令刷新的记录

c3.png

c4.png

可以用alias去做一个命令别名,这样不用每次都输python3 cdn.py 这个了,多个url刷新的话直接for循环

# 写入系统环境变量(所有用户都可以执行cdn这个命令),也可以写入用户的环境配置文件中,只对单个用户生效
echo "alias cdn='python3 /script/cdn.py'" >>/etc/profile

# 生效
source /etc/profile
c5.png

本文最后更新时间 2023-10-19
文章链接地址:
https://me.jinchuang.org/archives/1426.html
本站文章除注明[转载|引用|原文]出处外,均为本站原生内容,转载前请注明出处


留言