#!/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)

阿里云CDNapi的更多相关文章

  1. [linux]阿里云主机的免登陆安全SSH配置与思考

    公司服务器使用的第三方云端服务,即阿里云,而本地需要经常去登录到服务器做相应的配置工作,鉴于此,每次登录都要使用密码是比较烦躁的,本着极速思想,我们需要配置我们的免登陆. 一 理论概述 SSH介绍 S ...

  2. 阿里云直播 C# SDK 如何使用

    阿里云直播SDK的坑 1.直播云没有单独的SDK,直播部分被封装在CDN的相关SDK当中. 2.针对SDK,没有相关Demo. 3.针对SDK,没有相关的文档说明. 4.针对SDK的说明,官网上的说明 ...

  3. 8.仿阿里云虚拟云服务器的FTP(包括FTP文件夹大小限制)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html#iis 原文:http://dnt.dkill.net/Ar ...

  4. 阿里云服务器上配置并使用: PHP + Redis + Mysql 从配置到使用

    (原创出处为本博客,http://www.cnblogs.com/linguanh/) 目录: 一,下载 二,解压 三,配置与启动 四,测试 Redis 五,配置 phpRedis 扩展 六,综合测试 ...

  5. 阿里云学生优惠Windows Server 2012 R2安装IIS,ftp等组件,绑定服务器域名,域名解析到服务器,域名备案,以及安装期间错误的解决方案

     前言: 这几天终于还是按耐不住买了一个月阿里云的学生优惠.只要是学生,在学信网上注册过,并且支付宝实名认证,就可以用9块9的价格买阿里云的云服务ECS.确实是相当的优惠. 我买的是Windows S ...

  6. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  7. FineReport如何用JDBC连接阿里云ADS数据库

    在使用FineReport连接阿里云的ADS(AnalyticDB)数据库,很多时候在测试连接时就失败了.此时,该如何连接ADS数据库呢? 我们只需要手动将连接ads数据库需要使用到的jar放置到%F ...

  8. [故障公告]受阿里云部分ECS服务器故障影响,目前无法上传图片与文件

    抱歉!今天下午阿里云华东1可用区B的部分ECS服务器出现IO HANG问题,受此影响,我们的图片与文件上传服务器无法访问,由此给您带来麻烦,请您谅解. 16:30左右开始,我们发现图片与文件上传服务器 ...

  9. 分享阿里云推荐码 IC1L2A,购买服务器可以直接打9折,另附阿里云服务器部署ASP.NET MVC5关键教程

    阿里云推荐码为:IC1L2A 阿里云还是不错滴. 以windows server 2008 R2为例,介绍如何从全新的服务器部署MVC5 站点. 新购买的阿里云服务器是没有IIS的,要安装IIS: 控 ...

随机推荐

  1. C++11 并发指南二(std::thread 详解)(转)

    上一篇博客<C++11 并发指南一(C++11 多线程初探)>中只是提到了 std::thread 的基本用法,并给出了一个最简单的例子,本文将稍微详细地介绍 std::thread 的用 ...

  2. python(16)- python内置函数

    python内置了一系列的常用函数,以便于我们使用,python英文官方文档详细说明:https://docs.python.org/3/library/functions.html     Buil ...

  3. inch mil mm换算

    inch:英寸 mil:密耳 mm:毫米 1mil=0.0254mm=25.4um 1mm=39.37mil 1inch=1000mil=25.4mm

  4. 后端程序员看前端想死(三)是不是该学点js了

    CSS盒子模型 div布局 js 这些都懂一点,但仅仅是懂一点,有时间就学一下咯

  5. ubuntu 安装后的配置

    osx 下用 vmware 安装了一个 ubuntu 虚拟机,版本是 14.04 server.安装完之后要做一系列配置,记录如下. 配置 Android 编译环境 sudo apt-get inst ...

  6. linux socket send和recv、write和read

    1 recv和read ssize_t recv(int sockfd, void *buf, size_t len, int flags); ssize_t read(int fd, void *b ...

  7. ubuntu 16.04安装Jenkins

    快速安装: sudo wget -q -O - http://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - sudo ...

  8. Struts使用锚

    <a href="exam/ExaminationTrainAction_examTrainDisp#an_${id}"><div id="${id}& ...

  9. (linux)struct inode 和 struct file

    转自:http://www.cnblogs.com/QJohnson/archive/2011/06/24/2089414.html 1.struct inode──字符设备驱动相关的重要结构介绍 内 ...

  10. Double.valueOf()与Double.parseDouble()两者的区别

    写代码用到这两个方法,不知道有什么区别,看一下源码: Double.parseDouble(String str) public static double parseDouble(String s) ...