配置了重定向规则后,当请求者访问Bucket发生指定错误时,OSS会将请求重定向至回源规则指定的源站。您可以利用这种跳转的功能对文件做重定向以及在此基础之上的各种业务。

使用限制

  • 规则数量

    回源规则最多配置20条,按RuleNumber的先后顺序依次匹配。如果命中当前规则,则后续规则不再匹配。规则未命中表示没有匹配回源条件,与回源后是否成功获取目标文件无关。

  • 回源地址

    回源地址不支持内网地址。

使用流程

重定向功能的作用是根据设置的回源条件,以及相应的跳转的配置,向用户返回一个3xx跳转。具体流程如下图所示。

使用场景

  • 其他数据源向OSS的无缝迁移

    当您将客户端的数据源异步地迁移至OSS,在此过程中未迁移到OSS的数据通过URL重写的方式返回给用户一个302重定向请求,您的客户端根据302中的Location从数据源读取数据。

  • 配置页面跳转功能

    例如您希望隐藏某些前缀开头的Object,给请求者返回一个特殊的页面。

  • 配置发生404或500错误时的跳转页面

    发生以上错误时,请求者可以看到一个预先设定的页面,不在系统发生错误的时候向请求者完全暴露OSS错误。

使用OSS控制台

当访问者访问Bucket出错时,可以通过指定回源条件和回源地址,跳转到源站继续访问。例如您在华东1(杭州)有名为examplebucket的Bucket,您希望请求者访问Bucket根目录下examplefolder目录中的文件不存在时,跳转到https://www.example.com/站点的examplefolder目录获取目标文件。

  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击目标Bucket名称。
  3. 在左侧导航栏,选择数据管理 > 镜像回源
  4. 镜像回源页面,单击创建规则
  5. 创建规则面板,按以下说明配置必要参数,其他参数保留默认配置。
    参数 配置
    回源类型 选中重定向
    回源条件
    • 选中HTTP状态码,并设置为404

      HTTP状态码的取值范围为400~599。各状态码代表的错误信息,请参见常见错误排查

    • 选中文件名前缀,并设置为examplefolder/
      说明 配置单条回源规则时文件名前缀和后缀可选填;配置多条回源规则时,必须设置不同的文件名前缀或后缀区分不同的回源规则。
    回源地址 选择添加前后缀,并将第一列设置为https,第二列设置为www.example.com,其他置空。
  6. 单击确定
    规则配置完成后的访问流程如下:
    1. 请求者首次访问https://examplebucket.oss-cn-hangzhou.aliyuncs.com/examplefolder/example.txt
    2. 如果examplebucket中不存在examplefolder/example.txt文件,则OSS向请求者返回301状态码,并提供重定向的地址https://www.example.com/examplefolder/example.txt
    3. 请求者访问https://www.example.com/examplefolder/example.txt
    如果您还涉及以下使用场景,可按场景配置以下参数:
    场景 参数
    OSS文件名前缀与源站不一致。 选中是否替换或截取前缀,并设置回源地址第三列内容。OSS会将文件名前缀的内容替换为回源地址第三列的内容。

    配置文件名前缀后可配置此项。

    将OSS请求中的queryString传递到源站。 选中携带请求字符串
    需要替换重定向状态码。 重定向规则默认状态码为301,您可以在重定向Code下拉框将状态码修改为302307
    重定向请求来源为阿里云CDN。 选择是否选中来源为阿里CDN

    重定向来源为阿里云CDN的时候,如果选中来源为阿里CDN,CDN会自动去跟随重定向规则再去拉取内容;如果不选中来源为阿里CDN,则CDN直接返回重定向的地址给客户端。