• 阿里云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) 
  • 相关阅读:
    AJAX原生态编写
    oracle中分页查询
    myeclipse 2014 专业版 安装 svn插件
    List.toArray()用法详解
    数据库语句 select * from table where 1=1 的用法和作用
    setObject()用法
    Golang语言学习笔记(十四)
    Golang语言学习笔记(十三)
    Golang语言学习笔记(十二)
    Golang语言学习笔记(十一)
  • 原文地址:https://www.cnblogs.com/bfmq/p/6590932.html
Copyright © 2020-2023  润新知