假设 CDN 域名为 cdn.com,
原来的 OSS 域名为 oss1.com(弹内),新建了一个 OSS bucket,域名为 oss2.com(弹外)。
之前回源链路为 cdn.com -> oss1.com,现在想无缝切到 oss2.com,于是给 oss2 配了镜像回源,所有 404 的情况下都回源到 oss1,即新的回源链路为 cdn.com -> oss2.com -> oss1.com
但测试后发现个问题:
用户请求 cdn.com/12345.mp4?x-oss-process=video/snapshot,t_0 后,oss2 会请求 oss1.com
?x-oss-process=video/snapshot,t_0,并且把截图保存为文件名 12345.mp4。用户随后再请求 cdn.com/12345.mp4,就会直接命中 oss2 上保存好的图片,而不会再次回源 oss1 上的视频,导致视频播放失败。
我希望 OSS 在镜像回源的同时也能特殊对待 x-oss-process 参数,遇到 x-oss-process 参数先镜像回源源文件(即回源时不透传
x-oss-process 参数),然后再当前 bucket 进行 x-oss-process 操作并返回给 CDN。
这是我第二次遇到这样的需求了。