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