通过重定向从源站获取Bucket中不存在的文件

更新时间:2025-02-11 09:01:29

在存量数据迁移至OSS后,您可以通过配置重定向,确保用户可以访问未迁移至OSS的存量数据,避免影响业务数据的正常访问。配置重定向规则后,当请求者访问Bucket中不存在的文件(Object)时,OSS会自动将请求重定向至回源规则指定的源站获取内容。

使用限制

  • 规则数量

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

  • 回源地址

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

使用流程

重定向功能的作用是根据设置的回源条件(如HTT P状态码、文件名前缀、文件名后缀)和跳转配置(如目标URL、状态码如301、302、307等),向用户返回一个3xx跳转。具体流程如下图所示。

image

使用场景

  • 异步无缝迁移与URL重写

    • 在异步将客户端的数据源迁移至OSS时,尚未迁移的数据可以通过URL重写策略返回302状态码重定向请求,客户端根据302中的Location获取原始数据源的数据。

  • 页面跳转配置

    • 对于特定前缀的对象(例如需对请求者隐藏前缀开头的Object),可以配置返回特殊页面的跳转功能。

    • 当请求匹配这些前缀时,系统返回定制页面,避免显示实际对象。

  • 错误处理跳转页面

    • 配置错误页面,以优化在遇到404500错误时的体验。

    • 发生这类错误时,返回设定的页面以替代暴露细节的OSS默认错误信息。

使用OSS控制台

当访问者访问Bucket出错时,可以通过指定回源条件和地址跳转到源站继续访问。例如,您希望在华东1(杭州)的examplebucket中,访问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. 如果文件不存在,则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直接返回重定向的地址给客户端。

  • 本页导读 (1)
  • 使用限制
  • 使用流程
  • 使用场景
  • 使用OSS控制台