当您向对象存储OSS请求的数据不存在时,本应返回404错误。若您设置了回源规则,填写了数据的正确地址,您可以通过回源规则从OSS获取到正确的数据。

背景信息

回源类型分为镜像和重定向两种方式,可以满足您对于数据热迁移、特定请求的重定向等需求。
  • 镜像回源

    配置了镜像回源后,当您对OSS中一个不存在的文件进行GET操作时,OSS会向回源规则指定的地址请求这个文件,在获取到目标文件后返回给您,并将该文件写入OSS。镜像回源主要用于无缝迁移数据到OSS,即服务已经在自己建立的源站或者在其他云产品上运行,需要迁移到OSS上,但是又不能停止服务,此时可利用镜像回写功能实现。

  • 重定向

    配置了重定向后,当您对OSS中一个不存在的文件进行GET操作时,OSS会将您的请求重定向至回源规则指定的地址去获取目标文件。您可以利用这种跳转的功能对文件做重定向以及在此基础之上的各种业务。

您可以配置最多20条回源规则,系统将按规则顺序依次执行。详情请参见管理回源设置
注意 回源规则和版本控制功能无法同时配置,若存储空间已开启版本控制,则无法配置回源规则。

配置镜像回源

  1. 登录OSS管理控制台
  2. 单击Bucket列表,之后单击目标Bucket名称。
  3. 单击基础设置 > 镜像回源
  4. 单击设置,之后单击创建规则
  5. 创建规则页面,创建回源规则。
    参数 是否必选 说明
    回源类型 选择镜像,当请求在OSS中没找到文件时,会自动到源站抓取对应文件保存到 OSS,并将内容直接返回给您。
    回源条件 按需求添加回源规则触发的条件,触发回源规则需同时满足配置的所有回源条件。
    • HTTP状态码:通过HTTP状态码触发回源规则,默认状态码404,即OSS在未找到请求的文件时,返回错误码404,此时就会触发回源规则。选择镜像时,此项默认选中。
    • 文件名前缀:通过请求的文件名前缀触发回源规则。例如设置的文件名前缀是abc/,则访问http://bucketname.oss-endpoint.com/abc/image.jpg时会触发回源规则。
    • 文件名后缀:通过请求的文件名后缀触发回源规则。例如设置的文件名后缀是.jpg,则访问http://bucketname.oss-endpoint.com/image.jpg时会触发回源规则。
    说明 文件名前缀和后缀在配置单条回源规则时可选填;多条规则时,必需设置不同的文件名前缀或后缀来区分不同的回源规则。
    替换或截取前缀 选中文件名前缀且配置前缀参数后可配置此项。OSS在向源站请求时,将文件名前缀的内容替换为替换或截取前缀的配置。

    配置示例:假设您希望将回源的文件存放在存储空间根目录下的mirror目录。若目标文件名为path/test/photo.jpg,则配置镜像规则时,文件名前缀设为mirror/替换或截取前缀设为test/回源地址的第三列填写的目录为path。当您访问bucketname.oss-endpoint.com/mirror/photo.jpg时,若photo.jpg不存在,OSS会向回源地址/path/test/photo.jpg请求该文件。若OSS获取到正确的文件,会将文件存储在mirror/目录内,并将文件返回给您。

    回源地址 设置回源的源地址信息。
    • 第一列:选择HTTP或HTTPS,根据源站支持的访问类型选择。
    • 第二列:填写源站域名或IP地址。
      说明 填写IP地址时,仅支持可使用IP地址直接访问的源站。
    • 第三列:填写目标文件所在目录信息,多级目录需以正斜线(/)隔开。例如abc/123
    检查MD5 选中后表示检查回源文件的MD5。当返回的response中含有Content-MD5时,OSS检查的文件MD5值是否与Content-MD5的值匹配,如果不匹配,则不保存回源文件。
    回源参数 选中后会将OSS请求中的queryString传递到源站。
    3xx请求响应策略 选中后会跟随源站3xx重定向请求获取到资源,并将资源保存到OSS上。若不选中,OSS会透传3XX响应,不获取资源。
    设置HTTP header传递规则 可以通过设置HTTP header传递规则进行自定义透传、过滤或者修改。详情请参见下方HTTP header传递规则配置举例。
    HTTP header传递规则配置举例:
    根据以上配置,如果您发送到OSS的请求(HTTP header部分)如下:
    GET /object
    host : bucket.oss-cn-hangzhou.aliyuncs.com
    aaa-header : aaa
    bbb-header : bbb
    ccc-header : 111
    则触发镜像回源后,OSS发送给源站的请求如下:
    GET /object
    host : source.com
    aaa-header : aaa
    ccc-header : ccc                       
    说明 以下HTTP header类型不支持设置HTTP header传递规则:
    • 以下前缀开头的header:
      • x-oss-
      • oss-
      • x-drs-
    • 所有标准HTTP header,例如:
      • content-length
      • authorization2
      • authorization
      • range
      • date

设置重定向规则

  1. 登录OSS管理控制台
  2. 单击Bucket列表,之后单击目标Bucket名称。
  3. 单击基础设置 > 镜像回源
  4. 单击设置,之后单击创建规则
  5. 创建规则页面,创建重定向规则。
    参数 是否必选 说明
    回源类型 选择重定向,满足响应条件的请求会通过HTTP重定向的方式返回重定向的地址,浏览器或客户端再到源站获取内容。
    回源条件 按需求添加回源规则触发的条件,触发回源规则需同时满足配置的所有回源条件。
    • HTTP状态码:通过HTTP状态码触发回源规则,默认状态码404,即OSS在未找到请求的文件时,返回错误码404,此时就会触发回源规则。
    • 文件名前缀:通过请求的文件名前缀触发回源规则。例如设置的文件名前缀是abc/,则访问http://bucketname.oss-endpoint.com/abc/image.jpg时会触发回源规则。
    • 文件名后缀:通过请求的文件名后缀触发回源规则。例如设置的文件名后缀是.jpg,则访问http://bucketname.oss-endpoint.com/image.jpg时会触发回源规则。
    说明 文件名前缀和后缀在配置单条回源规则时可选填;多条规则时,必需设置不同的文件名前缀或后缀来区分不同的回源规则。
    替换或截取前缀 选中文件名前缀且配置前缀参数后可配置此项。OSS在向源站请求时,将文件名前缀的内容替换为替换文件名前缀的配置。
    说明 选中此项后,回源地址仅可以配置替换文件名前缀项。
    回源地址 设置回源的源地址信息,需根据源地址的信息配置重定向的回源地址规则。
    回源地址配置规则如下:
    • 第一列:选择HTTP或HTTPS,根据源站支持的访问类型选择。
    • 第二列:填写源站域名或IP地址。
      说明 填写IP地址时,仅支持可使用IP地址直接访问的源站。
    • 第三列:根据选择的前后缀规则设置。
      • 添加前后缀:会为重定向的地址添加前后缀信息。第三列配置前缀信息,第四列配置后缀信息。

        一般用于访问地址未添加前后缀时,为重定向的地址配置正确访问信息。例如添加的前缀是123/,后缀是.jpg。当访问bucketname.oss-endpoint.com/image时会自动跳转到回源地址/123/image.jpg

      • 跳转固定地址:直接跳转指定的文件。第三列需填写具体文件地址信息,例如abc/myphoto.jpg
        说明 您也可以通过重定向跳转到指定的网站。例如重定向设置为https://www.aliyun.com/index.html,即可在您访问Bucket域名时,跳转阿里云主页。
      • 替换文件名前缀:若您配置了回源条件的文件名前缀,此配置可以将重定向链接的文件名前缀替换为第三列的配置;若未配置文件名前缀,则此配置会添加重定向链接的文件名前缀。

      多级目录需以正斜线(/)隔开,目录需以正斜线(/)结尾,不支持星号(*)。

    回源参数 选中后会将OSS请求中的queryString传递到源站。
    重定向Code 下拉选择重定向的Code码。若重定向请求来源为阿里云CDN时请选中来源为阿里CDN
  6. 单击确定