场景描述
对象存储(OSS)主要场景是在文件存储以及对文件管理的云产品。不带有文件下行或者上行加速的功能,很多用户也会通过 CDN + OSS 的方式结合,通过 CDN 的优势加速文件访问速度。那么怎么能保证 CDN 缓存下的文件在原站(OSS)更新的情况下自动更新呢? 今天就说下自动刷新的功能;
what Refresh
使用过 CDN 都知道 它本身带有刷新接口功能,在调用刷新时被动的将 CDN 缓存住的旧文件内容刷新掉,但用户需要预知有哪些文件,或者这些文件在哪些目录;如果量级少还可以,如果几十万量级的 URL 用户端很一次性搜集完,而且调用刷新接口也需要大量的时间等待。如果用户的文件是存在 OSS 上,OSS 提供了这个自动刷新的功能,替代用户手动搜集 URL 提交刷新的过程;
开启 OSS 自动刷新
CDN 控制台
在 CDN 控制台,域名管理界面将原站类型改为用户要绑定的 OSS 地址即可;(这里要注意如果你的 OSS 是私有的,要把 CDN 私有bucket 回源功能开启,否则会导致 CDN 回源到 OSS 失败。如果客户端请求 URL 中带了 OSS签名,那可以不用开启此功能)
OSS 控制台
当 CDN 已经配置好,在 OSS 控制台的域名管理界面可以看到已经出现 “自动刷新“ 开源,点开按钮即可开启;
开启效果
1、用户上传同名文件到 OSS 后,OSS 会主动调用 CDN 刷新接口将旧文件清理掉;
2、OSS 刷新的任务优先级比主动掉 CDN 刷新接口的优先级低,这是正常现象,因为 OSS 操作文件的量突发性会大;
3、当用户文件几十万或者百万,同时在线更新时,OSS 调用 CDN 的刷新任务会出现排查情况,因为为了保护接口稳定性,每个账号下的任务并发数量是有限制的。所以建议用户端能分批去更新 OSS文件;
4、OSS 的刷新会占用 CDN 的刷新配额;
5、如果 OSS 的文件被删除后,也会调用 CDN 刷新将文件 cache 清理掉;