使用Github Action刷新DogeCloud的缓存
2024年11月18日...小于 1 分钟
按照下面文件名修改你的相关代码
source/.github/workflows/refresh-dogecloud.yml
name: Refresh dogecloud CDN
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: szenius/set-timezone@v1.0
with:
timezoneLinux: "Asia/Shanghai"
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Wait for 3 minutes
run: sleep 180
- name: Run refresh script
env:
ACCESS_KEY: ${{ secrets.CDN_ACCESS_KEY }}
SECRET_KEY: ${{ secrets.CDN_SECRET_KEY }}
run: |
pip install requests
python .github/refresh-dogecloud.py
创建下面 python 文件放到对应目录
并在代码中标注部分填入你的站点链接
source/.github/refresh-dogecloud.py
from hashlib import sha1
import hmac
import requests
import json
import urllib
import os
def dogecloud_api(api_path, data={}, json_mode=False):
access_key = os.environ["ACCESS_KEY"]
secret_key = os.environ["SECRET_KEY"]
body = ''
mime = ''
if json_mode:
body = json.dumps(data)
mime = 'application/json'
else:
body = urllib.parse.urlencode(data) # Python 2 可以直接用 urllib.urlencode
mime = 'application/x-www-form-urlencoded'
sign_str = api_path + "\n" + body
signed_data = hmac.new(secret_key.encode('utf-8'), sign_str.encode('utf-8'), sha1)
sign = signed_data.digest().hex()
authorization = 'TOKEN ' + access_key + ':' + sign
response = requests.post('https://api.dogecloud.com' + api_path, data=body, headers = {
'Authorization': authorization,
'Content-Type': mime
})
return response.json()
url_list = [
"{这里填入你需要刷新的链接}",
]
api = dogecloud_api('/cdn/refresh/add.json', {
'rtype': 'path',
'urls': json.dumps(url_list)
})
if api['code'] == 200:
print(api['data']['task_id'])
else:
print("api failed: " + api['msg']) # 失败
然后在 Github Action 密钥中添加CDN_ACCESS_KEY
和CDN_SECRET_KEY
你可以在 Dogecloud 上找到这两个值
然后推送即可