刷新CDN缓存

在某些场景下,您可能需要在文件过期前从 CDN 边缘缓存中删除文件,则可以执行下列操作之一:
  1. 在CDN服务的“刷新缓存”模块,创建对应的失效路径,使文件在CDN边缘缓存点中删除,客户端下次请求文件时,CDN 将请求返回源站以获取文件的最新版本
  2. 通过版本控制提供不同的文件名称,例如,您缓存的文件名为mp4,您在更新文件后使用version_2.mp4的版本名称,并且更新您的客户端链接指向最新的version_2.mp4。使用版本控制,您可以直接提供文件的最新版本,而不必等待文件过期或主动使文件过期。

在控制台刷新CDN缓存步骤:

  1. 进入CDN服务中的“刷新缓存”模块,点击创建
  2. 选择您需要失效的CDN域名;在URL列表中您可以指定单独文件的路径或以* 通配符结尾的路径,使用通配符可能会应用到一个或多个文件,请根据实际需求填写
  3. 保存提交后等待失效的状态记录变成“已完成”即可

操作示意图:

在您创建刷新CDN缓存记录时,请确保您指定正确的文件,请注意如下几点:

  1. 刷新文件的路径
    1. 请注意在填写CDN刷新文件的路径时,路径是相对于CDN分配的,例如您的完整URL文件为:

      https://example.agilewingcdn-demo.com/video/video_1.mp4

      则您在URL列表中只需填写/video/video_1.mp4

      您可以使用*通配符来使多个文件失效,请注意通配符是失效路径中的最后字符,

      以下是一些示例:

      使目录中的所有文件失效:

      /directory-path/*

      使目录、其所有子目录以及该目录和子目录中的所有文件失效:

      /directory-path*

      使具有相同名称但文件扩展名不同的所有文件失效 (例如 logo.jpg、logo.png 和 logo.gif):

      /directory-path/file-name.*

      使目录中文件名以相同字符开头的所有文件失效 (例如 HLS 格式的视频的所有文件) 而不论扩展名如何:

      /directory-path/initial-characters-in-file-name*

      当您将 CDN 配置为根据查询字符串参数进行缓存并且希望使某个文件的所有版本失效时:

      /directory-path/file-name.file-name-extension*

      使分配中的所有文件失效:

      /*

  2. 区分URL大小写
  3. CDN刷新缓存文件的路径是区分大小写的,例如/video/music.mp4跟/video/Music.mp4是两个文件。

  4. 转发 Cookie
  5. 如果配置CDN将 Cookie 转发到源站,CDN边缘缓存的文件可能会包含多个版本。当您刷新CDN缓5B58时,CDN会使文件的所有缓存版本失效,不论其关联的 Cookie 如何。您无法根据关联的 Cookie 选择性地使一些版本失效,而使另一些版本不失效。

  6. 转发标头
  7. 如果配置 CDN 以将标头白名单转发到源站并根据标头值进行缓存,CDN边缘缓存的文件可能会包含多个版本。当您使文件失效之后,CDN会使文件的所有缓存版本失效,而不论标头值如何。您无法根据标头值选择性地使一些版本失效,而使另一些版本不失效。(请注意:如果配置CDN以将所有标头转发到源,则CDN 不会缓存您的文件。)

  8. 转发查询字符串
  9. 如果您将 CDN 配置为将查询字符串转发到源站,在使文件失效时,您必须包括查询字符串,如下例中所示:

    /video/music.mp4?parameter1=a

    /video/music.mp4?parameter1=b

    如果客户端请求包括针对同一个文件的五个不同查询字符串,您可以使文件失效五次(每个查询字符串一次),或者您可以在失效路径中使用 * 通配符,如下例中所示:

    /video/music.mp4*