#!/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. angular - 介绍

    导入全局样式,生产环境和浏览器环境都导入了. 不知否你还记得index.html那个里面的节点 熟悉吗? 很熟悉吧

  2. php如何读取ini文件

    很多时候,我们使用配置文件来读取配置,那么php如何使用ini文件呢? 代码如下: 例如将:数据库信息存到ini文件中,进行读取. <?php header('content-type:text ...

  3. nightwatch.js - scroll until element is visible

    .getLocationInView() Determine an element's location on the screen once it has been scrolled into vi ...

  4. 【NoSql】Redis实践篇-简单demo实现(一)

    Redis是一个key-value存储系统. Redis的出现,非常大程度补偿了memcached这类key/value存储的不足,在部分场合能够对关系数据库起到非常好的补充作用 Redis是一个ke ...

  5. IntelliJ IDEA配置Tomcat及部署项目

    IntelliJ IDEA配置Tomcat及部署项目(原链接) 主要有以下几个要点 1.选择本地的tomcat容器. 2.可以选择修改访问路径. 3.On Update action 当我们按 Ctr ...

  6. 自动添加QQ

    自动添加QQ <meta http-equiv="refresh" content="0; url=tencent://AddContact/?fromId=50& ...

  7. inline-block的使用

    inline-block是什么 inline和block是css中元素display属性的两个选项,而inline-block可以说是介于两者之间的属性值. inline使元素成为内联元素(inlin ...

  8. ASP.NET车辆管理系统100%源代码

    系统开发环境为VS2010.採用ASP.NET框架.数据库採用SQL Server.系统採用Ajax,具有:GPS导航(实时监控报警).申请审核.流程查看及短信息发送等功能.这个系统界面和功能是我认为 ...

  9. EasyDarwin开源流媒体云平台之EasyRMS录播服务器功能设计

    需求背景 EasyDarwin开发团队维护EasyDarwin开源流媒体服务器也已经很多年了,之前也陆陆续续尝试过很多种服务端录像的方案,有:在EasyDarwin中直接解析收到的RTP包,重新组包录 ...

  10. memcached和一致性hash算法

    1 一致性hash算法的一致性 这里的一致性指的是该算法可以保持memcached和数据库中的数据的一致性. 2 什么是一致性hash算法 2.1 为什么需要一致性hash算法 现在有大量的key v ...