本次是直接安装了阿里云最新的python SDK包,不再像以前那样,要下载他们的包放到自己的程序中了。
SDK包安装:
pip install aliyun-python-sdk-cdn
官方资料:https://helpcdn.aliyun.com/document_detail/27247.html?spm=5176.doc27251.6.255.wZ55kx
例子:查看域名列表的使用步骤:
第一步,需要初始化Client。
from aliyunsdkcore import client
Client=client.AcsClient('你的阿里云AccessKey','你的阿里云AccessSecret','cn-hangzhou')
第二步, 初始化request,设置参数
from aliyunsdkcdn.request.v20141111 import DescribeUserDomainsRequest
request = DescribeUserDomai
Request.DescribeUserDomainsRequest()
request.set_accept_format('json') # 设置返回数据格式为json
request.set_PageNumber(1)
# 取得第几页 取值范围为:1~100000
request.set_PageSize(5)
# 分页大小,默认20,最大50 取值:1~50之前的任意整数
第三步,发起API调用
result=Client.do_action(request)
第四步,框架中返回结果:
return json.dumps(result)
以上相关资料:
https://helpcdn.aliyun.com/document_detail/27248.html?spm=5176.doc27247.6.256.D6zNLQ
以下是我写的几个CDN功能代码:
- #!/usr/bin/env python
- #coding=utf-8
- __author__ = '戴儒锋'
- import json
- import datetime
- from dateutil.parser import parse
- from bottle import get,post
- from bottle import template
- # 引入自已写的方法和阿里云配置
- from controller.core import reMsg,checkArgs
- from conf import setting
- # 导入阿里云API模块,官方提供 pip install aliyun-python-sdk-cdn
- # 第一个参数是AccessKey,AccessKey和AccessSecret是您访问阿里云API的一对钥匙(点击这里创建和管理您的AccessKey);
- # 第二个参数是AccessSecret,AccessSecret相当于您的口令,请不要被第三方获知;
- # 第三个是默认RegionId,
- from aliyunsdkcore import client
- from aliyunsdkcdn.request.v20141111 import DescribeUserDomainsRequest # 引入获取CDN域名列表类
- from aliyunsdkcdn.request.v20141111 import RefreshObjectCachesRequest # 引入刷新CDN的类
- from aliyunsdkcdn.request.v20141111 import DescribeRefreshTasksRequest # 引入获取CDN刷新操作日志类
- from aliyunsdkcdn.request.v20141111 import DescribeRefreshQuotaRequest # 引入获取剩余刷新次数的类
- Client=client.AcsClient(setting.ali_key,setting.ali_secret,'cn-hangzhou')
- @get('/cdn/')
- def callback():
- """ 获取CDN今日剩余可刷新的次数 """
- 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 template('cdn',data=result)
- @get('/get_domains/')
- def callback():
- """ 获取域名列表 """
- request = DescribeUserDomainsRequest.DescribeUserDomainsRequest()
- request.set_accept_format('json')
- request.set_PageNumber(1) # 取得第几页 取值范围为:1~100000
- request.set_PageSize(50) # 分页大小,默认20,最大50 取值:1~50之前的任意整数
- result=json.loads(Client.do_action(request)).get("Domains").get("PageData")
- return json.dumps(result)
- @post('/refresh_cdn/')
- def callback():
- """ 刷新CDN """
- url_path = checkArgs('url_path',"文件URL路径")
- s_type = checkArgs('s_type',"文件类型")
- for url in url_path.split():
- request = RefreshObjectCachesRequest.RefreshObjectCachesRequest()
- request.set_ObjectPath(url) # 刷新地址
- request.set_ObjectType(s_type) # 地址类型
- request.set_accept_format('json')
- Client.do_action(request) # 刷新
- return reMsg(0,"刷新完成,稍等会即生效")
- @post('/refresh_history_cdn/')
- def callback():
- """ 选择文件刷新CDN """
- url_path = checkArgs('url_path',"文件URL路径")
- request = RefreshObjectCachesRequest.RefreshObjectCachesRequest()
- request.set_ObjectPath(url_path) # 刷新地址
- request.set_ObjectType('File') # 地址类型
- request.set_accept_format('json')
- Client.do_action(request) # 刷新
- return reMsg(0,"刷新完成,稍等会即生效")
- @get('/get_cdn_log/')
- def callback():
- """ 获取七天内CDN刷新操作日志的最近50条:查询刷新、预热状态,是否在全网生效。"""
- 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")
- # 处理时间:阿里云返回的时间格式是UTC,现处理成北京时间,把字符格式转换成时间格式,并+8小时
- for i in data:
- i['CreationTime'] = (parse(i['CreationTime']) + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')
- return json.dumps(data)
前端图示:
阿里云CDN python SDK资料:
https://helpcdn.aliyun.com/document_detail/27247.html
阿里云CDN API操作手册:
https://helpcdn.aliyun.com/document_detail/27148.html
阿里云python CDN SDK上的示例资料不全,如果要整合开多的CDN功能,则要多参考CDN API操作手册
阿里云所有的包都在:/usr/lib/python2.6/site-packages/aliyunsdkcdn/request/v20141111/目录内(python2.6.6版本),你要开发什么功能,就在操作手册那查看它的类包,传参参数,返回参数等。
有不懂的,可留言,或加python运维开发QQ群:458088280
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏