aliyun_cdn重新整理專案
背景:公司正處於發展期,ios 安卓 還有前端等專案頻繁發布 時間不固定 運維人員人手不夠
所有每次發布都要重新整理cdn相關目錄 況且如果讓開發人員等操作重新整理cdn還要登入aliyun相關帳號
這樣導致帳號不安全和流程不合適
所以誕生自主研發cdn重新整理功能
系統環境:
centos7.4
python 3.7
flask 框架
aliyun核心sdk和cdn sdk
bootstrap框架
系統安全上面
只限openvpn登入訪問內網才可以操作
專案截圖:
操作記錄
執行時間
url操作
結果型別
進度taskid
}}
再次操作
再次操作
完成異常
url重新整理
目錄重新整理
}}
/templates/shuaxin.html
} 頁面將在3秒內跳轉到首頁
from flask import flask,render_templatefrom flask import request
from aliyunsdkcore import client
import json
import datetime
from dateutil.parser import parse
from aliyunsdkcdn.request.v20141111 import describerefreshtasksrequest # 引入獲取cdn重新整理操作日誌類
from aliyunsdkcdn.request.v20141111 import refreshobjectcachesrequest # 引入重新整理cdn的類
from aliyunsdkcdn.request.v20141111 import describerefreshquotarequest # 引入獲取剩餘重新整理次數的類
client=client.acsclient('*********','*********************xx','cn-hangzhou')
def get_aliyun_cdn_log():
request = describerefreshtasksrequest.describerefreshtasksrequest()
request.set_accept_format('json')
request.set_pagenumber(1) # 取得第幾頁 取值範圍為:1~100000
request.set_pagesize(50) # 分頁大小,預設20,最大50 取值:1~50之前的任意整數
data = json.loads(client.do_action(request)).get("tasks").get("cdntask")
for i in data:
i['creationtime'] = (parse(i['creationtime']) + datetime.timedelta(hours=8)).strftime('%y-%m-%d %h:%m:%s')
return json.dumps(data)
def shuaxin_cdn(url_path,s_type):
request = refreshobjectcachesrequest.refreshobjectcachesrequest()
request.set_objectpath(url_path) # 重新整理位址
request.set_objecttype(s_type) # 位址型別
request.set_accept_format('json')
client.do_action(request) # 重新整理
return "重新整理完成,稍等會即生效"
def shengyu_count():
request = describerefreshquotarequest.describerefreshquotarequest()
request.set_accept_format('json')
result = json.loads(client.do_action(request))
result['urlper'] = format(float(result.get('urlremain')) / float(result.get('urlquota')), '.2%') # 統計url當日可重新整理量百分比
result['dirper'] = format(float(result.get('dirremain')) / float(result.get('dirquota')), '.2%') # 統計目錄當日可重新整理量百分比
return result
def hello_world():
count=shengyu_count()
urlcount=count['urlremain']
dircount=count['dirremain']
# return 'hello world!'
return render_template('index.html',info=json.loads(get_aliyun_cdn_log()),urlcount=int(urlcount),dircount=int(dircount))
def test():
# return 'hello world!'
return render_template('shuaxin.html')
def shuaxin():
url = request.args.get('url')
type = request.args.get('type')
s_type=''
if type=="url重新整理":
s_type='file'
elif type=="目錄重新整理":
s_type='directory'
info=shuaxin_cdn(url, type)
# info=url+' '+s_type
return render_template('shuaxin.html', info=info)
if __name__ == '__main__':
突破!阿里雲CDN實現毫秒級全網重新整理
在這種情況下就會遇到這些問題 當 發表了一篇內容有錯誤的文章,因為重新整理系統緩慢,無法第一時間修訂或撤回 在電商大型 活動期間,產品活動詳情頁的需要實時更新,因為不能及時重新整理cdn快取,最新的詳情頁無法第一時間更新到全網,可能會影響使用者下單。諸如此類的以上問題可能會帶來一定的信譽或業務損失。...
突破!阿里雲CDN實現毫秒級全網重新整理
在這種情況下就會遇到這些問題 當 發表了一篇內容有錯誤的文章,因為重新整理系統緩慢,無法第一時間修訂或撤回 在電商大型 活動期間,產品活動詳情頁的需要實時更新,因為不能及時重新整理cdn快取,最新的詳情頁無法第一時間更新到全網,可能會影響使用者下單。諸如此類的以上問題可能會帶來一定的信譽或業務損失。...
php 重新整理騰訊雲cdn
namespace org util refreshcoscdn class coscdn else else this commonparams nonce rand timestamp time null action empty config action config action this...