#!/usr/bin/env python
from aliyunsdkcore import client
import json
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 # CDN剩余刷新次数的类 class Aliyun:
"""
阿里云CDN刷新操作相关,3.5版本暂时不支持,官网声明支持2.7版本,2.6亲测可用,写成类没什么意义啊,wtf,算了,就酱吧
官网资料https://helpcdn.aliyun.com/document_detail/27200.html?spm=5176.doc27148.6.625.VnHkL4
但是这资料真特么没有什么卵用,艹
pip install aliyun-python-sdk-cdn 安装
pip install aliyun-python-sdk-cdn --upgrade 升级
pip uninstall aliyun-python-sdk-cdn 卸载
"""
__instance = None def __init__(self, AccessKey='xxxxxxxxxxxxxxxxxxxx', AccessSecret='xxxxxxxxxxxxxxxxxxx'):
"""
https://helpcdn.aliyun.com/document_detail/27248.html?spm=5176.doc27247.6.727.6F2Khg
:param AccessKey: 阿里云服务器内部可生成,上面的网页有跳转链接
:param AccessSecret: 阿里云服务器内部可生成
"""
self.AccessKey = AccessKey
self.AccessSecret = AccessSecret
self.Client = client.AcsClient(self.AccessKey, self.AccessSecret, 'cn-hangzhou') @staticmethod
def singleton():
if Aliyun.__instance:
return Aliyun.__instance
else:
Aliyun.__instance = Aliyun()
return Aliyun.__instance def refresh_cdn_url(self, url, Type):
"""
刷新指定路径缓存,cdn是什么就不解释了....
:param url: 需要刷新的目标url,需要注意的是如果是域名则必须以‘/’结尾
:param Type: 域名为Directory,例如http://www.bfmq.com/
单独文件为File,例如http://www.bfmq.com/a.txt
:return: 返回的信息真神奇,一点卵用都没用,说好的error code呢,亲?so,不返回了
"""
self.request = RefreshObjectCachesRequest.RefreshObjectCachesRequest()
self.request.set_ObjectPath(url)
self.request.set_ObjectType(Type)
self.request.set_accept_format('json')
self.result = json.loads(self.Client.do_action(self.request))
print(self.result) def get_cdn_data(self):
"""
获取本日可刷新剩余次数,默认每日文件2000次,目录100次,应该跟会员等级有关系....
:return: UrlRemain 今日url刷新数剩余
DirRemain 今日dir刷新数剩余
UrlQuota 今日url刷新数总量
DirQuota 今日dir刷新数总量
"""
self.request = DescribeRefreshQuotaRequest.DescribeRefreshQuotaRequest()
self.request.set_accept_format('json')
self.result = json.loads(self.Client.do_action(self.request))
print(self.result) def get_cdn_log(self, page=1, page_size=20):
"""
获取七天内CDN刷新操作日志
:param page: 取得第几页 取值范围为:1-100000
:param page_size: 分页大小,默认20,最大50
:return: 返回的是UTC时间哦
"""
self.request = DescribeRefreshTasksRequest.DescribeRefreshTasksRequest()
self.request.set_accept_format('json')
self.request.set_PageNumber(page)
self.request.set_PageSize(page_size)
self.result = json.loads(self.Client.do_action(self.request)).get("Tasks").get("CDNTask")
print(self.result) def get_cdn_url(self, page=1, page_size=20):
"""
获取本云用户下域名列表
:param page: 取得第几页 取值范围为:1-100000
:param page_size: 分页大小,默认20,最大50
:return:
"""
self.request = DescribeUserDomainsRequest.DescribeUserDomainsRequest()
self.request.set_PageNumber(page)
self.request.set_PageSize(page_size)
self.request.set_accept_format('json')
self.result = json.loads(self.Client.do_action(self.request)).get("Domains").get("PageData")
print(self.result)

最新文章

  1. Jbuilder 2008安装及破解
  2. 使用Go开发一个简单的服务器程序
  3. mv 的使用
  4. 在HTTP响应标题中隐藏ASP.NET MVC的版本
  5. Unity3D GUI之自定义风格组件
  6. POJ-3580-SuperMemo(splay的各种操作)
  7. asp.net uploadfile 上传文件,连接已重置问题
  8. Linux下一个C(编程入门.h档,.c档,而路多文件的调用)
  9. iOS OC Swift3.0 TableView 中tableviewcell的线左边不到边界
  10. UVA10341-Solve It-二分查找
  11. Spring IOC(三)依赖注入
  12. linux上MongoDB安装部署
  13. shell编程-文件包含(十)
  14. 前端限制input输入框(只能输入正整数)
  15. idea git 从github上拉取项目 更改上传
  16. java基础74 XML解析中的SAX解析相关知识点(网页知识)
  17. 『转』谷歌发布Windows版Chrome App Launcher
  18. MyBatis_Study_001(入门)
  19. JDK静态代理示例代码
  20. xcode10不兼容问题解决方法,framework编译脚本

热门文章

  1. hdu 1548
  2. 完美删除vector的内容与释放内存
  3. sparkSQL1.1入门之十:总结
  4. 《UNIX-Shell编程24学时教程》读书笔记chap7 变量
  5. mysql: 关于MySQL InnoDB锁行还是锁表?
  6. PHP几种抓取网络数据的常见方法
  7. soapUI学习笔记--用例字段参数化
  8. cocos2d-x项目101次相遇:在HelloWorld上--建立新场景
  9. C#基础关键字
  10. scp windows 和 linux 远程复制 (双向)