阿里雲CDN重新整理專案

2021-09-13 14:48:17 字數 3375 閱讀 9454

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_template

from 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...