本文主要介绍如何设置回源规则。

当您向 OSS 请求的数据不存在时,本应返回404错误。若您设置了回源规则,填写了数据的正确地址,您可以通过回源规则从 OSS 获取到正确的数据。回源类型分为镜像和重定向两种方式,可以满足您对于数据热迁移、特定请求的重定向等需求。您可以配置最多5条回源规则,系统将按规则顺序依次执行。详情请参见管理回源设置

说明 镜像回源不支持内网 endpoint,外网流量按正常收费。

操作步骤

  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 时请勾选。

    根据以上配置,如果用户发送到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. 单击确定
说明 规则保存成功后,您可以在策略列表中查看已设置的回源规则,并进行编辑或者删除操作。