human: 如何处理七牛云的对象存储镜像回源

gpt: [对象存储](https://developer.qiniu.com/kodo) > 使用指南 >
[开发指南](https://developer.qiniu.com/kodo/development_guidelines/8596/development-
guidelines) >
[管理存储空间](https://developer.qiniu.com/kodo/development_guidelines/8599/management-
of-storage-space) > 镜像回源

#  镜像回源

最近更新时间: 2023-11-29 11:16:51

七牛云对象存储 Kodo
的镜像存储服务是一种快速的数据迁移和加速服务。可以帮助用户实现无缝数据迁移，迁移过程中并不影响原有业务系统的访问。镜像存储适用于迁移原有业务系统的已有数据。七牛云提供分布式存储和加速分发服务，以分布式存储为核心服务。  
  

# **应用场景**

客户在准备接入七牛的时候一般有两种场景：

  * 场景一  
客户业务从设计开发的时候就采用七牛的云存储服务，这种情况下直接将文件上传到七牛，然后再使用七牛的加速分发服务即可。

  * 场景二  
客户业务已经建立起来后才准备接入七牛。这种情况下会遇到两个问题，第一个是需要修改上传的业务逻辑，第二个是如何迁移已有的数据。修改上传的业务逻辑，可能涉及到很多项目代码的修改，持续时间可能比较长。已有的数据可以使用七牛提供的同步工具
qshell 上传到七牛，但是在上传之后由业务系统产生的新数据总不能每次都找出增量来上传，所以这个时候就可以用到镜像存储了。  
  

# **具体说明**

在镜像存储的业务模型里面，原来的图片或者视频访问域名将被配置为七牛的源站，而页面里面引用图片或视频链接的地方必须使用新的访问域名。然后将新的访问域名绑定
(CNAME)
到七牛空间对应的域名。在这些操作完成之后，终端用户就可以通过七牛访问图片或者视频等非结构化资源了。在每个访问请求到七牛的时候，如果七牛空间中不存在这个资源，那么七牛将主动回客户源站抓取资源并存储在空间里面，这样七牛就不需要再次回源客户的资源站点了。

  * 镜像存储业务模型如下:  
![FmgYGQnovQoMisC1icVwkVwQh5ih.png](https://dn-
odum9helk.qbox.me/FmgYGQnovQoMisC1icVwkVwQh5ih)

  * 模型描述： 
    1. 将非结构化数据的源站配置为七牛空间的镜像源站。选择空间，然后在空间的概览页面里，找到镜像存储，然后在镜像源对话框内填入用于回源抓取资源的源站域名。比如将空间 `image1` 的镜像源站配置为 `http://image1.abc.com`。
    2. 为空间申请自定义域名，该域名将是新的资源外链的域名。注意加速域名的填写，比如为空间 `image1` 申请自定义域名 `image11.abc.com`，该域名必须是当前业务系统里面没有使用的子域名。
    3. 自定义域名审核通过之后，在客户的 DNS 服务设置那里,就可以根据审核通过后提示的 CNAME 目标来将自定义域名绑定到七牛的空间域名。
    4. 修改页面中的资源引用域名为新的自定义域名。比如，将新的图片资源外链域名改为 `http://image11.abc.com`。  
  

# **操作步骤**

Kodo支持通过控制台、API、命令行辅助工具方式进行镜像回源相关设置。

支持的操作方式 | 参考文档  
---|---  
控制台 | [设置镜像回源](https://developer.qiniu.com/kodo/development_guidelines/8542/set-up-the-mirror-back-to-the-source)  
API | [image 设置 Bucket 镜像回源](https://developer.qiniu.com/kodo/api/3966/bucket-image-source)   
[prefetch 镜像资源更新](https://developer.qiniu.com/kodo/api/1293/prefetch)  
命令行辅助工具 | [qrsctl](https://developer.qiniu.com/kodo/tools/1300/qrsctl)  
  
  

# **常见问题**

  1. **七牛的镜像存储和传统的 CDN 区别是什么？**  
七牛镜像存储是一种数据迁移的方式，其回源客户的源站也仅仅回源一次，成功抓取资源到七牛的空间之后，不再回源。七牛的存储外面还有一层 CDN 分发网络，这一层的
CDN 分发网络才和传统的 CDN 具有相同的功能。  
  

  2. **七牛的镜像存储的情况下，如何将源站更新的内容同步更新到七牛的空间？**  
七牛镜像存储的回源操作对相同的文件只抓取一次，后面如果客户的源站更新了文件内容，需要手动调用镜像资源更新接口来更新七牛空间中的文件，保持内容和客户源站内容相同。另外七牛外围的
CDN 如果需要及时更新缓存的话，也需要利用七牛后台提供的刷新预取功能来刷新 CDN 的缓存。如果不需要及时更新，那么等待 CDN 自动更新即可。  
  

  3. **镜像源地址设置和拉取资源链接形式是什么？**  
拉取资源链接为：镜像空间绑定的加速域名 +（源站链接-镜像源地址设置部分）  
例如：

     * 源站资源链接：`http(s)://sourceDomain/image/123.jpg`
     * 加速域名：`a.b.com`
     * 若镜像源地址设置为：`http(s)://sourceDomain/`，则拉取资源链接：`http(s)://a.b.com/image/123.jpg`
     * 若镜像源地址设置为：`http(s)://sourceDomain/image`，则拉取资源链接：`http(s)://a.b.com/123.jpg`  
  

  4. **七牛的镜像存储回源源站时，User-Agent 是什么？**  
七牛镜像存储回源源站时，请求会携带固定的 User-Agent 信息：-qiniu-imgstg-spider-1.0，RegionID 为华东-浙江
z0、华北-河北 z1、华南-广东 z2、华东-浙江2 cn-east-2、北美-洛杉矶 na0、亚太-新加坡 as0。  
  

  5. **七牛的镜像存储是否需要永久保留？**  
七牛的镜像存储是数据迁移的一种方式，之所以提供这种数据迁移方式是为了方便客户修改上传的业务逻辑。在上传的逻辑改为直传七牛之后，后续产生的新的数据将直接存储在七牛的空间。这样在镜像存储保留一段时间之后，源站的回源流量将逐渐趋于
0，这个时候就可以将镜像功能删除了。  
  

  6. **七牛的镜像存储需要修改资源的访问外链域名，如何使用和原有的资源域名相同的域名？**  
七牛的镜像存储会将原始的资源访问域名设置为源站，而新的资源访问域名必须采用和原始资源访问域名不同的域名。如果需要使用和原有资源域名相同的域名的话，首先需要将镜像源站的域名替换为一个新的子域名或者直接使用
IP 地址，然后将原有的资源域名申请配置为七牛空间的自定义域名，配置成功之后，进行 CNAME 操作，这样原有的页面里面的资源就不需要更改外链域名了。

以上内容是否对您有帮助？