Go 刷新 cdn
前言 cdn 刷新是 cdn 使用过程中的一项重要的功能,通过刷新功能,您可以删除CDN节点上已经缓存的资源,并强制CDN节点回源站获取最新资源,适用于源站资源更新和发布、违规资源清理、域名配置变更等。 接下来将分别讲述 阿里云CDN、AWS cloudfront 、Cloudflare cdn 使用 go 语言进行 cdn 的刷新操作的。 阿里云刷新 cdn 如何刷新 阿里云 cdn 的缓存呢? 只需使用 阿里云 openapi 的 go sdk 即可,通过查阅文档,我们只需使用 RefreshObjectCaches API即可刷新阿里云 cdn 的缓存,RefreshObjectCaches 有以下参数: ObjectPath: 刷新的url ,多个 url 使用换行符进行分隔 ObjectType: 刷新任务的类型,有以下类型 File(默认值):文件刷新。 Directory:目录刷新。 Regex:正则刷新。 IgnoreParams:去参数刷新。去参数指的是去除请求 URL 中?及?之后的参数,去参数刷新指的是用户先通过接口提交去参数后的 URL,然后用户提交的待刷新 URL 将会与已缓存资源的 URL 进行去参数匹配,如果已缓存资源的 URL 去参数以后与待刷新 URL 匹配,那么 CDN 节点将对缓存资源执行刷新处理。 Force: 当回源内容和源站资源对比后不一致时,是否刷新对应目录下的资源。默认为 false。 下面是一个例子: package main import ( cdn20180510 "github.com/alibabacloud-go/cdn-20180510/v4/client" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" util "github.com/alibabacloud-go/tea-utils/v2/service" "github.com/alibabacloud-go/tea/tea" "os" ) func CreateClient(accessKeyId *string, accessKeySecret *string) (result *cdn20180510.Client, err error) { config := &openapi.Config{ AccessKeyId: accessKeyId, AccessKeySecret: accessKeySecret, } config.Endpoint = tea.String("cdn.ap-southeast-1.aliyuncs.com") result = &cdn20180510.Client{} result, err = cdn20180510.NewClient(config) return result, err } func main() { client, err := CreateClient(tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))) if err != nil { return } refreshObjectCachesRequest := &cdn20180510.RefreshObjectCachesRequest{ ObjectPath: tea.String("http://example.com/image/1.png\\\n\t\thttp://aliyundoc.com/image/2.png"), } runtime := &util.RuntimeOptions{} _, err = client.RefreshObjectCachesWithOptions(refreshObjectCachesRequest, runtime) if err != nil { return } return } aws cloudfront 接下来讲解 aws cloudfront 如何刷新 cdn,cloudfront 刷新缓存的操作叫使文件失效,通过查阅 cloudfront 的API文档,发现可以使用 CreateInvalidation 来创建失效。可以使用 aws go sdk 来进行操作。 ...