阿里云CDNapi

 1 #!/usr/bin/env python
 2 from aliyunsdkcore import client
 3 import json
 4 from aliyunsdkcdn.request.v20141111 import DescribeUserDomainsRequest   # 获取CDN域名列表类
 5 from aliyunsdkcdn.request.v20141111 import RefreshObjectCachesRequest   # 刷新CDN的类
 6 from aliyunsdkcdn.request.v20141111 import DescribeRefreshTasksRequest  # CDN刷新操作日志类
 7 from aliyunsdkcdn.request.v20141111 import DescribeRefreshQuotaRequest  # CDN剩余刷新次数的类
 8 
 9 
10 class Aliyun:
11     """
12     阿里云CDN刷新操作相关,3.5版本暂时不支持,官网声明支持2.7版本,2.6亲测可用,写成类没什么意义啊,wtf,算了,就酱吧
13     官网资料https://helpcdn.aliyun.com/document_detail/27200.html?spm=5176.doc27148.6.625.VnHkL4
14     但是这资料真特么没有什么卵用,艹
15     pip install aliyun-python-sdk-cdn   安装
16     pip install aliyun-python-sdk-cdn --upgrade     升级
17     pip uninstall aliyun-python-sdk-cdn     卸载
18     """
19     __instance = None
20 
21     def __init__(self, AccessKey='xxxxxxxxxxxxxxxxxxxx', AccessSecret='xxxxxxxxxxxxxxxxxxx'):
22         """
23         https://helpcdn.aliyun.com/document_detail/27248.html?spm=5176.doc27247.6.727.6F2Khg
24         :param AccessKey: 阿里云服务器内部可生成,上面的网页有跳转链接
25         :param AccessSecret: 阿里云服务器内部可生成
26         """
27         self.AccessKey = AccessKey
28         self.AccessSecret = AccessSecret
29         self.Client = client.AcsClient(self.AccessKey, self.AccessSecret, 'cn-hangzhou')
30 
31     @staticmethod
32     def singleton():
33         if Aliyun.__instance:
34             return Aliyun.__instance
35         else:
36             Aliyun.__instance = Aliyun()
37             return Aliyun.__instance
38 
39     def refresh_cdn_url(self, url, Type):
40         """
41         刷新指定路径缓存,cdn是什么就不解释了....
42         :param url: 需要刷新的目标url,需要注意的是如果是域名则必须以‘/’结尾
43         :param Type: 域名为Directory,例如http://www.bfmq.com/
44                      单独文件为File,例如http://www.bfmq.com/a.txt
45         :return: 返回的信息真神奇,一点卵用都没用,说好的error code呢,亲?so,不返回了
46         """
47         self.request = RefreshObjectCachesRequest.RefreshObjectCachesRequest()
48         self.request.set_ObjectPath(url)
49         self.request.set_ObjectType(Type)
50         self.request.set_accept_format('json')
51         self.result = json.loads(self.Client.do_action(self.request))
52         print(self.result)
53 
54     def get_cdn_data(self):
55         """
56         获取本日可刷新剩余次数,默认每日文件2000次,目录100次,应该跟会员等级有关系....
57         :return: UrlRemain  今日url刷新数剩余
58                  DirRemain  今日dir刷新数剩余
59                  UrlQuota   今日url刷新数总量
60                  DirQuota   今日dir刷新数总量
61         """
62         self.request = DescribeRefreshQuotaRequest.DescribeRefreshQuotaRequest()
63         self.request.set_accept_format('json')
64         self.result = json.loads(self.Client.do_action(self.request))
65         print(self.result)
66 
67     def get_cdn_log(self, page=1, page_size=20):
68             """
69             获取七天内CDN刷新操作日志
70             :param page: 取得第几页 取值范围为:1-100000
71             :param page_size: 分页大小,默认20,最大50
72             :return: 返回的是UTC时间哦
73             """
74             self.request = DescribeRefreshTasksRequest.DescribeRefreshTasksRequest()
75             self.request.set_accept_format('json')
76             self.request.set_PageNumber(page)
77             self.request.set_PageSize(page_size)
78             self.result = json.loads(self.Client.do_action(self.request)).get("Tasks").get("CDNTask")
79             print(self.result)
80 
81     def get_cdn_url(self, page=1, page_size=20):
82             """
83             获取本云用户下域名列表
84             :param page: 取得第几页 取值范围为:1-100000
85             :param page_size: 分页大小,默认20,最大50
86             :return:
87             """
88             self.request = DescribeUserDomainsRequest.DescribeUserDomainsRequest()
89             self.request.set_PageNumber(page)
90             self.request.set_PageSize(page_size)
91             self.request.set_accept_format('json')
92             self.result = json.loads(self.Client.do_action(self.request)).get("Domains").get("PageData")
93             print(self.result) 

 

posted @ 2017-03-20 18:30  北方姆Q  阅读(682)  评论(0编辑  收藏  举报