-
EarthLiveSharp中cloudinary的CDN图片缓存自动清理
最近总是对地球宇宙着迷。
恰巧发现有个叫“EarthLiveSharp”,可用将日本向日葵8号卫星的地球实时图片设为屏保。向日葵8号卫星的地球实时图片官网为:http://himawari8.nict.go.jp/,EarthLiveSharp的项目地址是:https://github.com/bitdust/EarthLiveSharp。
为了减轻向日葵8号的服务器负担,同时也是提高地球实时图片的获取成功率,需要使用cloudinary来做CDN。注册配置都在软件里有说明。
目前EarthLiveSharp暂时没有清理cloudinary的CDN图片缓存的功能,于是我用python写了一个,并尝试用gist管理,地址为:https://gist.github.com/creke/c5a8a18fa41b8f5c1a0719a7e0cf4de6
同时,为了大家方便,顺便编译成了Windows可执行文件,下载: https://pan.baidu.com/s/1c27fXEo 提取码:k33n
为了自己检索方便,顺便在这里附上python脚本源码,可以作为python如何使用RESTful接口的例子,相关工具类函数也便于参考。
EarthLiveCleanCloudinary.py
# -*- coding: utf-8 -*-
# Author: Creke
# HomePage: http://blog.creke.netimport sys
import urllib, urllib2
import base64
import jsonURLLIB_DEBUG_LEVEL = 1
URLLIB_TIMEOUT = 5def Dict2Uri(dic):
return urllib.urlencode(dic)def GenUrllibReq(url, method, api_key, api_secret, post_data=None):
urlreq = None
if post_data is None:
urlreq = urllib2.Request(url)
else:
urlreq = urllib2.Request(url, post_data)
urlreq.get_method = lambda: method
auth_str = base64.b64encode('%s:%s' % (api_key, api_secret))
urlreq.add_header("Authorization", "Basic %s" % auth_str)
urlreq.add_header('Cache-Control', 'no-cache')
return urlreqdef GetApiDelUrl(cloud_name, img_type):
url = "https://api.cloudinary.com/v1_1/%s/resources/image/%s" % (cloud_name, img_type)
params = {"prefix": "http://himawari8-dl"}
url = url + "?" + Dict2Uri(params)
return urldef main(argv):
arg_idx = 1
api_key = argv[arg_idx]
arg_idx += 1
api_secret = argv[arg_idx]
arg_idx += 1
cloud_name = argv[arg_idx]while True:
del_url = GetApiDelUrl(cloud_name, 'fetch')
urlreq = GenUrllibReq(del_url, 'DELETE', api_key, api_secret)print "==========================="
print "Requesting %s" % (del_url)
opener = urllib2.build_opener(urllib2.HTTPSHandler(debuglevel=URLLIB_DEBUG_LEVEL))
urllib_open = opener.open(urlreq, timeout=URLLIB_TIMEOUT)
response = urllib_open.read()
print "==========================="
print "Response:"
print "%s" % (response)
print "==========================="
urllib_open.close()
print "Done Requesting"res_json = json.loads(response)
deleted_cnt = len(res_json['deleted'])
print "Deleted %u himawari8 pics" % (deleted_cnt)
print "==========================="
if 'next_cursor' in res_json and deleted_cnt>0:
print "Due to Cloudinary limits, we're starting a new round"
else:
breakreturn 0
def PrintHelp(argv):
print "\t USAGE: %s [api_key] [api_secret] [cloud_name]" % (argv[0])if __name__ == '__main__':
if len(sys.argv) < 4:
PrintHelp(sys.argv)
exit(1)
print "RUNNING main"
main(sys.argv)
print "DONE main"EarthLiveCleanCloudinary2exe.py
# -*- coding: utf-8 -*-
# Author: Creke
# HomePage: http://blog.creke.netfrom distutils.core import setup
import py2exesetup(console=['EarthLiveCleanCloudinary.py'])
分类: 所谓技术 | 标签:
《EarthLiveSharp中cloudinary的CDN图片缓存自动清理》已有 1 条评论
最新文章
- EarthLiveSharp中cloudinary的CDN图片缓存自动清理
- WordPress取消英文标点符号自动替换中文标点符号的优雅方法
- 安装aria2及使用yaaw配置WebGUI界面
- Zabbix安装简记
- WordPress垃圾评论大作战
最近评论
- 湖南科大又一命案·一死两伤·汇总·湖南科技大学》 发表在《
- 湖南科大又一命案·一死两伤·汇总·湖南科技大学》 发表在《
- 湖南科大又一命案·一死两伤·汇总·湖南科技大学》 发表在《
- 湖南科大又一命案·一死两伤·汇总·湖南科技大学》 发表在《
- 湖南科大又一命案·一死两伤·汇总·湖南科技大学》 发表在《
标签云
Apache
CCTV
CentOS
Google
JAVA
Linux
MySQL
PHP
PHPmyadmin
rewrite
SSH
StatusNet
wordpress
YY
下载
中国
使用
剧情
动漫
动漫补完计划
动画
博客
域名
安装
影评
恭贺2010
方法
日本
服务器
柯南
死亡笔记
游戏
电影
第10放映室
网站
网络
翻译
腾讯
观后感
规则
视频
解决
设置
评论
配置