利用 API 清除 CloudFlare 上托管站点的文件缓存
本文介绍如何利用Curl或者Python,通过CloudFlare的API刷新托管站点的文件缓存。
非原创,但实践可行
准备
需要从CloudFlare
获取托管站点的zoneid
和账户的API KEY
。zoneid
从站点管理页面的右侧边栏复制,API KEY
从Profile
页面复制。下面是zoneid
和api key
的格式:
# 32位
zoneid: 023e105f4ecef8ad9ca31a8372d0c353
# 45位或37位
api key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41
使用
curl版本
files 列表支持指定刷新 url 时使用的 headers,不过通常用不到,直接传文件列表即可。curl 命令的格式如下:
curl -X POST "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/purge_cache" \
-H "X-Auth-Email: user@example.com" \
-H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
-H "Content-Type: application/json" \
--data '{"files":["http://www.example.com/css/styles.css",{"url":"http://www.example.com/cat_picture.jpg","headers":{"Origin":"cloudflare.com","CF-IPCountry":"US","CF-Device-Type":"desktop"}}]}'
Python 版本
#coding: utf-8
import requests
import argparse
import json
# your account email
EMAIL = 'user@example.com'
# your account api, get from the profile page
APIKEY = 'c2547eb745079dac9320b638f5e225cf483cc5cfdda41'
# zoneids of your sites
SITES = {
'sitea': '31a8372d0c353023e105f4ecef8ad9ca',
'siteb': '023e105f4ecef8ad9ca31a8372d0c353',
}
def main(siteid, files):
zone = SITES[siteid]
url = "https://api.cloudflare.com/client/v4/zones/%s/purge_cache" % (zone)
headers = {
'X-Auth-Email': EMAIL,
'X-Auth-Key': APIKEY,
'Content-Type': 'application/json'
}
res = requests.post(url, headers=headers, data='%s' % json.dumps({"files": files}), timeout=10)
if res.status_code != 200:
print(res.status_code)
print(res.text)
if __name__ == '__main__':
argParser = argparse.ArgumentParser()
argParser.add_argument('-s', '--site', dest='site', type=str, help='site', required=True, choices=SITES.keys())
argParser.add_argument('-f', '--files', dest='files', type=str, help='files', required=True)
args = argParser.parse_args()
# pass the urls with | separator
main(args.site, args.files.split("|"))
如果成功,返回的内容是以下格式:
{"result":{"id":"efab1b41b12d5408927ab5b5ac2fd02b"},"success":true,"errors":[],"messages":[]}
参考资料
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »