全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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


# CDN图片缓存  # 自动清理  # 利用Python中的pandas库对cdn日志进行分析详解  # python+tkinter+mysql做简单数据库查询界面  # python把数据框写入MySQL的方法  # Python连接Mysql实现图书借阅系统  # 基于 Python实现云服务器的CDN域名远程鉴权配置  # 基于python实现cdn日志文件导入mysql进行分析  # 地球  # 在这里  # 成了  # 有个  # 都在  # 设为  # 我用  # 写了  # 日本  # 暂时没有  # 来做  # 如何使用  # 官网  # 可执行文件  # urllib  # sys  # json  # import  # Author  # utf 


相关文章: 如何在香港免费服务器上快速搭建网站?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  临沂网站制作公司有哪些,临沂第四中学官网?  如何选择高效可靠的多用户建站源码资源?  如何快速查询网址的建站时间与历史轨迹?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  兔展官网 在线制作,怎样制作微信请帖?  为什么Go需要go mod文件_Go go mod文件作用说明  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  如何在阿里云部署织梦网站?  Python路径拼接规范_跨平台处理说明【指导】  微信小程序 五星评分(包括半颗星评分)实例代码  如何选择靠谱的建站公司加盟品牌?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  制作宣传网站的软件,小红书可以宣传网站吗?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  如何正确选择百度移动适配建站域名?  如何选购建站域名与空间?自助平台全解析  建站主机核心功能解析:服务器选择与网站搭建流程指南  昆明高端网站制作公司,昆明公租房申请网上登录入口?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  济南企业网站制作公司,济南社保单位网上缴费步骤?  建站主机功能解析:服务器选择与快速搭建指南  如何快速查询网站的真实建站时间?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  微信推文制作网站有哪些,怎么做微信推文,急?  如何通过宝塔面板实现本地网站访问?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站主机选购指南:核心配置优化与品牌推荐方案  已有域名能否直接搭建网站?  如何在七牛云存储上搭建网站并设置自定义域名?  如何在云指建站中生成FTP站点?  建站之星24小时客服电话如何获取?  如何生成腾讯云建站专用兑换码?  如何用PHP快速搭建高效网站?分步指南  如何挑选优质建站一级代理提升网站排名?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  电商网站制作价格怎么算,网上拍卖流程以及规则?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  宁波免费建站如何选择可靠模板与平台?  建站之星如何一键生成手机站?  个人网站制作流程图片大全,个人网站如何注销?  建站之星如何快速生成多端适配网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。