前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell妙用 —— 发post请求刷新CDN缓存

shell妙用 —— 发post请求刷新CDN缓存

作者头像
我是leon
发布2019-08-28 12:04:20
4.7K1
发布2019-08-28 12:04:20
举报
文章被收录于专栏:leon的专栏leon的专栏

前言

shell 是个好东西,建议学习下:)

本文将讲解如何用shell开发自动化脚本刷新CDN缓存。 为什么会做这个小脚本,根本原因还是懒… 公司的运维,很贴心开发了一个form表单的网页,专门给前端同学刷新CDN缓存。虽然可以满足要求,但是每次上一次项目,就得打开该网页,输入SecretKey和需要刷新的URL地址,很心累。 有痛点,那么就尝试解决它!

一、shell脚本

代码语言:javascript
复制
#!bin/bash
# 刷新cdn

urls="https://***.com/page1;\
https://***.com/page2;"

curl \
 -X POST \
 --data-urlencode "qq=00" \
 --data-urlencode "ws=01" \
 --data-urlencode "SecretKey=***" \
 --data-urlencode "flushurl=${urls}" \
 http://127.0.0.1/

二、脚本解析

凡是在客户端可以跑的命令,都可以用shell集成,做自动化。

2.1 用curl发http请求

curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。

主要了解两种方式:get和post。

  • get 请求
代码语言:javascript
复制
curl example.com/a.html?data=xxx
  • post 请求
代码语言:javascript
复制
curl -X POST --data "data=xxx" example.com/form.cgi
  • post 请求(encode参数)
代码语言:javascript
复制
curl -X POST--data-urlencode "date=April" example.com/form.cgi

2.2 集成到shell脚本,自动化

代码语言:javascript
复制
#!bin/bash
curl  -X POST --data-urlencode "qq=00" --data-urlencode "ws=01" --data-urlencode "SecretKey=***" --data-urlencode "flushurl=https://***.com/page1;https://***.com/page2;" http://127.0.0.1/

要实现的目的基本达到,但是代码不友好,修改不方便。

2.3 优化代码

代码语言:javascript
复制
#!bin/bash

urls="https://***.com/page1;\
https://***.com/page2;"

curl \
 -X POST \
 --data-urlencode "qq=00" \
 --data-urlencode "ws=01" \
 --data-urlencode "SecretKey=***" \
 --data-urlencode "flushurl=${urls}" \
 http://127.0.0.1/
  • 将命令的每个参数进行换行,用反斜杠续行
  • 经常修改的url独立成变量

三、执行自动化脚本

  • window环境下,可用Git Bash工具跑shell
  • linux环境,直接在终端跑就可以了

命令例子:bash cdn.sh

后记

有前端同事,用commander+axios做了一个刷新CDN工具,但是,没我这个来得简单粗爆:) shell就是这么好用~

参考

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、shell脚本
  • 二、脚本解析
    • 2.1 用curl发http请求
      • 2.2 集成到shell脚本,自动化
        • 2.3 优化代码
        • 三、执行自动化脚本
        • 后记
        • 参考
        相关产品与服务
        内容分发网络 CDN
        内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档