修复link_lite.json bug
This commit is contained in:
1 parent
3f43909fe7
commit
4714121251
7 files changed
+251
-241
No files matched your search
@@ -0,0 +1,58 @@
|
||||
from hashlib import sha1
|
||||
import hmac
|
||||
import requests
|
||||
import json
|
||||
import urllib
|
||||
import os
|
||||
|
||||
def dogecloud_api(api_path, data={}, json_mode=False):
|
||||
"""
|
||||
调用多吉云API。
|
||||
|
||||
:param api_path: 调用的 API 接口地址,包含 URL 请求参数 QueryString。
|
||||
:param data: POST 的数据,字典格式。
|
||||
:param json_mode: 数据 data 是否以 JSON 格式请求,默认为 false 则使用表单形式。
|
||||
|
||||
:return dict: 返回的数据。
|
||||
"""
|
||||
access_key = os.environ.get('DOGECLOUD_ACCESS_KEY') # 从环境变量获取 AccessKey
|
||||
secret_key = os.environ.get('DOGECLOUD_SECRET_KEY') # 从环境变量获取 SecretKey
|
||||
|
||||
if not access_key or not secret_key:
|
||||
raise ValueError("Access Key or Secret Key is not set in environment variables.")
|
||||
|
||||
body = ''
|
||||
mime = ''
|
||||
if json_mode:
|
||||
body = json.dumps(data)
|
||||
mime = 'application/json'
|
||||
else:
|
||||
body = urllib.parse.urlencode(data)
|
||||
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 列表,使用逗号分隔
|
||||
url_list_env = os.environ.get('CDN_URL_LIST')
|
||||
if not url_list_env:
|
||||
raise ValueError("CDN_URL_LIST is not set in environment variables.")
|
||||
|
||||
url_list = url_list_env.split(',')
|
||||
|
||||
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'])
|
||||
Reference in new issue
Block a user