常见问题 - 缓存刷新/资源预取
简介
七牛默认使用 CDN 域名访问对象存储资源,如果您正在使用 对象存储 / CDN 产品,可能会涉及到资源的缓存/预取问题,本文列出了部分您可能需要了解的问题列表。
Q:为什么已经上传的文件有时会出现404,等待一段时间就会正常?
Q:CDN 访问为什么会存在缓存问题?
如果本文仍然无法解决您的问题,您也可以通过 工单系统 将您的问题反馈给我们。
Q:资源已经在源站删除,为什么还能访问?
当前访问到了该资源在 CDN 节点的缓存。
资源从源站删除之后,缓存仍然会在 CDN 节点保存,所以用户仍然可以访问到,需要刷新 CDN 缓存。
说明:如果您使用了七牛的对象存储,默认绑定CDN加速域名,如果需要刷新缓存,请参考文档刷新缓存的方法
Q:资源已经覆盖/重新上传,为什么还能访问到旧文件?
当前访问到了旧文件在 CDN 节点的缓存。
在源站某个资源的内容变更之后,旧缓存仍然会在 CDN 节点保存,刷新 CDN 缓存即可重新回源获取资源。
说明:如果您使用了七牛的对象存储,默认绑定CDN加速域名,如果需要刷新缓存,请参考文档刷新缓存的方法
Q:如何刷新 CDN 缓存?
刷新缓存方法请参考文档刷新缓存的方法
方法1: portal.qiniu.com 控制台刷新缓存,点击左侧 cdn — 刷新预取
方法2: api 接口地址:https://developer.qiniu.com/fusion/api/1229/cache-refresh
方法3: qshell命令行工具:https://developer.qiniu.com/kodo/tools/1302/qshell
Q: 刷新文件 和 刷新目录 分别是什么含义?
缓存刷新分为 刷新文件 和 刷新目录。
- 刷新文件:是以单条url为单位进行缓存刷新。
- 目录刷新:是以目录为单位,将该域名对应目录下的所有文件进行缓存刷新。
Q: 刷新 和 文件预取 有什么区别?
刷新的含义为清空缓存,预取的含义为主动进行缓存
- 刷新后,所有 CDN 节点上对应的资源缓存失效,用户再次触发访问时,CDN 节点将执行回源拉取,刷新操作用于文件更新或删除后,保证用户能访问到最新资源。
- 预取后,资源将被主动缓存到 CDN 节点,用户通过 CDN 访问对应预取过的资源时,不需要重复回源,可以提升用户的访问速度。
Q:如何修改缓存时间?
如果需要部分前缀或后缀文件不缓存,可以在控制台-域名管理中,修改该域名的缓存配置为自定义,根据您的业务需求设置缓存时间。修改完成后,节点对新的缓存将会依据配置进行,如需清空旧配置情况时已触发的缓存,可以尝试刷新目录缓存。
Q:为什么已经上传的文件有时会出现404,等待一段时间就会正常?
如果在文件上传完成之前触发访问,会报错 404 ,404 默认会缓存 10 秒左右,如果重复请求该资源,会在上传完成后 10 秒内访问正常.
Q:CDN 节点的缓存会实时和源站同步更新吗?
CDN 缓存更新依赖主动触发刷新任务,或者根据控制台配置的缓存有效时间,过期后重新回源拉取,默认情况下不会主动更新。
Q:如何查看刷新任务是否处理成功?
方法1:可以在控制台 - cdn - 刷新预取 - 操作记录中查看
方法2:调用CDN的接口查询,文档参考 刷新查询.
Q:提交任务报错 [403023] urls admin submitted belong to more than one user
提交刷新/预取任务的域名必须是当前账户在 CDN 域名管理中已经创建的域名,无法刷新其他账户或未创建的域名.
Q:为什么刷新任务已经执行成功,还是访问到旧缓存?
1. 检查本地浏览器缓存是否清空,可以尝试更换浏览器或者无痕模式。
2. 确认下访问 URL 是否携带了其他参数,刷新时是否连带参数进行刷新。
3. https 和 http 部分场景下独立缓存,如果之前刷新的是 https 链接,并且用 http 访问过该资源,可以再尝试刷新 http 的链接试下。
Q:CDN 访问为什么会存在缓存问题?
CDN 服务利用多级缓存原理进行加速,所以通过 CDN 的访问默认都会被缓存。
文档反馈
(如有产品使用问题,请 提交工单)