您好,登錄后才能下訂單哦!
本篇內容主要講解“如何用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腳本”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。