# 对象存储的镜像回源功能详细介绍

- 原文链接：https://www.xintheme.com/theme-docs/105610.html
- 发布日期：2020-12-19
- 更新时间：2020-12-19
- 作者：大胡子 | XinTheme
- 分类目录：主题文档
- 标签：WordPress、WordPress主题、WordPress加速、WordPress教程、对象储存

## 摘要

什么是对象存储的回源功能 对象存储的镜像回源功能是指，当网站的用户请求的资源不存在的时候，可以通过回源规则从设定的源地址获取到正确的数据，然后再返回给网站的用户...

## 正文

### 什么是对象存储的回源功能

对象存储的镜像回源功能是指，**当网站的用户请求的资源不存在的时候，可以通过回源规则从设定的源地址获取到正确的数据，然后再返回给网站的用户**。

![对象存储的回源功能](https://www.xintheme.com/wp-content/uploads/2020/12/1591263866-p1580.png)博客上的图片，CSS，JS 这些静态文件一般都是不会经常修改的，使用镜像回源功能把这些静态文件资源镜像到对象存储的服务器上，网站用户访问的时候就直接从云存储的服务器上读取数据，这样可以**降低网站服务器读取数据的压力**和**提高网站的速度**。

XinTheme所有的付费[WordPress主题](https://www.xintheme.com/)内置的「对象储存」就是使用的镜像回源功能。

并且并不影响博客的原来使用体验，原来怎么上传图片还是继续在网站中怎么操作即可。

### 镜像回源的操作过程和原理

简单说，镜像回源的操作过程和原理是这样的，以阿里云OSS为例：

比如我博客上有一张图片：`http://www.dahuzi.me/img/logo.png`，它的域名是 `www.dahuzi.me`

在阿里云OSS里面新建一个空间，比如 dahuzi，绑定一个 `img.dahuzi.me` 的域名，然后设置镜像回源，“回源地址”设为 `www.dahuzi.me`。

现在就可以通过 `http://img.dahuzi.me/img/logo.png` 这个地址访问到保存在博客上的那张图片了。

说明：我博客上的任意一张图片，只要它的源站地址是 `www.dahuzi.me`，就可以通过将它改成 `img.dahuzi.me` 访问到。

每次通过 `img.dahuzi.me` 访问到某张图片的时候，它就会被永久保存在阿里云 OSS 上（除非你手动把它删除），然后每次终端用户访问到的时候都会通过阿里云的 CDN 分发出去，从而实现加快[WordPress网站](https://www.xintheme.com/)加载速度的功能。

### 使用镜像回源需注意的地方

只有当对象存储上没有对应资源情况下，对象存储才会执行镜像回源，向源站请求文件。

假设文件已经通过镜像回源写到了对象存储，如果源站的相同文件发生了变化，对象存储不会更新已经存在于对象存储上的文件，因为此时文件已经在对象存储上，不符合镜像回源的条件，所以：

**在源站修改了 CSS 或者 JS 文件，对象存储是不会自动更新的**。

那怎么办？你可以：

**1、上对象存储手动更新对应的文件**。

**2、更改文件名，让对象存储重新镜像一个新的文件**。

镜像回源功能看起来和传统的 CDN 比较像，两种都会在数据不存在的时候回源站抓取，不同之处在于，**镜像回源是存储不是缓存**，故此**镜像存储对每个资源来说只回源一次**，后续访问的时候就不再回源了。

如果终端用户第一次访问某个资源，终端用户首先从对象存储上访问资源，再让对象存储回源站取资源，然后将取回的资源缓存在对象存储上。因此，**第一次访问会有一定的延时**，可能比从源站取稍微慢一点，这是正常的，但是第二次第三次访问就可以直接从对象存储上取，一般情况下比从源站取资源会快很多。

也正因为镜像存储第一次取资源时会有延时，因此**不推荐镜像文件大小超过 5M 的大文件资源**，否则第一次访问会很慢或者出现服务器超时等错误。

网站上的图片镜像到对象存储之后，是否可以删除服务器上的图片，**答案是可以的**，**但是强烈建议不要进行此项操作**，因为现在主机空间费用非常低廉，购买一个大点的空间也花不了多少钱。另外图片多保存一份在自己的服务器上也是好的。

### 加速功能为什么使用镜像回源

我们的[WordPress主题](https://www.xintheme.com/)为什么使用镜像回源而不用对象存储提供的 API 对接？

使用 API 对接需要大量时间去对接，并且每家对象存储提供商的 API 都有一些不同，所以每次对接都要花费时间，而每家对象存储的镜像回源功能基本一致，并且 API 对接还会存在一定失败率。

使用镜像回源功能可以将已经发布的文章里面的图片也镜像到对象存储上面，你只需要按照使用文档设置好就行，其他什么都不用做，网站上所有图片都会全部镜像到对象存储里面。