温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • 如何用EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本

如何用EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本

发布时间:2021-07-02 15:25:58 来源:亿速云 阅读:326 作者:chen 栏目:开发技术

本篇内容主要讲解“如何用EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本”吧!

恰巧发现有个叫“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.net import sys import urllib, urllib2 import base64 import json URLLIB_DEBUG_LEVEL = 1 URLLIB_TIMEOUT = 5 def 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 urlreq def 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 url def 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:       break   return 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.net from distutils.core import setup import py2exe setup(console=['EarthLiveCleanCloudinary.py'])

Windows编译版本下载:

链接: https://pan.baidu.com/s/1skADZeH 密码: rdgb

到此,相信大家对“如何用EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI