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

背景信息

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

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

  • 重定向

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

您可以配置最多5条回源规则,系统将按规则顺序依次执行。详情请参见管理回源设置

操作步骤

  1. 登录OSS管理控制台
  2. 在左侧存储空间列表中,单击目标存储空间名称,打开该存储空间概览页面。
  3. 单击基础设置页签,找到镜像回源区域。
  4. 单击设置,之后单击创建规则
  5. 创建规则对话框,创建回源规则。
    参数 是否必选 说明
    回源类型 选择镜像或者重定向
    • 镜像方式下,当请求在OSS中没找到文件时,会自动到源站抓取对应文件保存到 OSS,并将内容直接返回给用户。
    • 重定向方式下,满足响应条件的请求会通过HTTP重定向的方式返回重定向的地址,浏览器或客户端再到源站获取内容。
    回源条件 按需求添加回源规则触发的条件,触发回源规则需同时满足配置的所有回源条件。
    • HTTP状态码:通过HTTP状态码触发回源规则,默认状态码404,即OSS在未找到请求的文件时,返回错误码404,此时就会触发回源规则。

      选择镜像时默认勾选,不可修改配置;选择重定向时可选填。

    • 文件名前缀:通过请求的文件名前缀触发回源规则。例如:设置的文件名前缀是abc/,则访问http://bucketname.oss-endpoint.com/abc/image.jpg时会触发回源规则。
      说明 文件名前缀在仅配置单条回源规则时可选填;多条规则时,必需设置不同的文件名前缀区分不同的回源规则。
    回源地址 设置回源的源地址信息。

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

    • 选择镜像时,配置回源地址信息即可。
      • 第一列:选择HTTP或HTTPS,根据源站类型选择。
      • 第二列:填写源站域名或IP地址。
        说明 填写IP地址时,仅支持可使用IP地址直接访问的源站。
      • 第三列:填写目标文件所在目录信息,例如abc/123
    • 选择重定向时,需根据源地址的信息选择重定向的回源地址规则。地址信息的第一列和第二列参考镜像的配置。
      • 添加前后缀:会为重定向的地址添加前后缀信息。第三列配置前缀信息,第四列配置后缀信息。

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

      • 跳转固定地址:直接跳转指定的文件。第三列需填写具体文件地址信息,例如abc/myphoto.jpg
        说明 您也可以通过重定向跳转到指定的网站。例如重定向设置为https://www.aliyun.com/index.html,即可在您访问Bucket域名时,跳转阿里云主页。
      • 替换文件名前缀:若您配置了回源条件的文件名前缀,此配置可以将重定向链接的文件名前缀替换;若未配置文件名前缀,则此配置会添加重定向链接的文件名前缀。
    回源参数 否(镜像) 携带请求字符串:会将OSS请求中的queryString传递到源站。
    3xx请求响应策略 否(镜像) 跟随源站重定向请求:默认会跟随源站3xx重定向请求获取到资源,并将资源保存到OSS上。若不勾选,OSS会透传3XX响应,不获取资源。
    设置HTTP header传递规则 否(镜像) 可以通过设置 HTTP header 传递规则进行自定义透传、过滤或者修改。详情请参见下方HTTP header 传递规则配置举例
    重定向Code 是(重定向) 下拉选择重定向的Code码。

    来源为阿里CDN:若来源为阿里云 CDN 时请勾选。

    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
  6. 单击确定