CDN常见问题场景以及解决方法有哪些?
场景一
迁移前CDN域名配置检查失败,控制台显示失败原因为:COMPARE_SRC_AND_CDN_FAILURE
问题原因:
OMS从源端获取的对象元数据与直接使用CDN获取的HTTP头信息不匹配(大小不相等或源端最后修改时间晚于CDN最后修改时间)。
解决方法:
- 确认使用CDN域名能够正常下载对象(OMS使用CDN获取的URL为:CDN域名后直接拼接对象名)
- 如果不能正常访问,优先排查是否是添加了CDN防盗链导致无法正常读取。
- 如果能正常访问,请参考2进行下一步排查 。
- 检查CDN获取的HTTP头中的Content-Length和Last-Modified与源端元数据中值对比。
场景二
迁移失败,失败对象列表中失败原因为:COMPARE_SRC_AND_CDN_FAILURE
问题原因:
迁移前OMS服务校验源端对象与CDN对象不一致(主要指对象大小和最后修改时间)。
常见原因:源端对象更新后,CDN未刷新缓存,导致源端对象与CDN上缓存的对象不一致。
解决方法:
刷新CDN缓存信息,使CDN上的缓存对象为最新的对象。
场景三
迁移失败,失败对象列表中失败原因为:“403”
问题原因:
“403”表示OMS服务无权限访问CDN域名。
- 公开读取的CDN常见原因:在CDN配置了防盗链接。
- 非公开读取的CDN原因为:在OMS控制台配置迁移任务/任务组时,未启用CDN权鉴校验。
解决方法:
- 针对公开读取的CDN配置了防盗链,建议关闭防盗链。如果基于安全考虑,无法关闭防盗链,可联系华为云技术支持。
- 针对非公开读取的CDN,在配置迁移任务/任务组时,启用CDN鉴权校验,并输入CDN“校验秘钥”。
场景四
迁移失败,失败对象列表中失败原因为:UPLOAD_DST_OBJ_FAILURE
问题原因:
出现该问题,可能是用户在源端启用了CDN的性能优化功能,如Gzip压缩功能。OMS从源端获取对象元数据的content-length作为该对象预期迁移的大小,实际上传时读到的是压缩后的对象大小,实际大小<预期大小,okHttp3传输数据时判定为流异常中断,导致迁移失败。
解决方法:
- 方法一:在源端云服务商的CDN控制台,关闭CDN的性能优化功能,如Gzip压缩、页面优化等功能,然后重新迁移。
- 方法二:使用URL列表方式迁移,并在高级选项中设置一致性校验方式为不校验。