You need to enable JavaScript to run this app.
导航
设置重定向回源
最近更新时间:2024.09.12 18:02:53首次发布时间:2024.01.26 11:56:20

设置重定向回源后,当请求的对象在桶中不存在时,TOS 支持返回重定向地址给请求方,请求方再通过重定向地址获取对象或对象元数据。本文介绍如何设置重定向回源。

背景信息

重定向回源功能支持以下两个操作:

  • 使用 GetObject 触发重定向回源:当请求的对象在桶中不存在时,TOS 将返回重定向地址给请求方,请求方再通过重定向的地址获取对象。
  • 使用 HeadObject 触发镜像回源:当请求元数据的对象在桶中不存在时,TOS 将返回重定向地址给请求方,请求方再通过重定向的地址获取对象元数据。

注意事项

场景

类别

注意事项

使用 GetObject 触发重定向回源

回源对象大小

最大支持请求 300GiB 的对象。

回源条件

默认当 GetObject 且返回的 HTTP 状态码为 404 时,触发重定向回源,从源站拉取文件。

使用 HeadObject 触发镜像回源

回源限制

  • 不支持通过 HeadObject 请求重定向回源软链接对象。
  • 通过 HeadObject 请求重定向回源对象元数据时,是否回源拉取文件参数无效,即不支持在该场景下从源站拉取文件写入到 TOS。

回源条件

只有在创建回源规则时开启是否支持 HeadObject 功能, 且 HeadObject 请求返回的 HTTP 状态码为 404 时,才会触发重定向回源。

操作步骤

  1. 登录对象存储控制台

  2. 在左侧导航栏,单击桶列表,在桶列表页面单击目标桶名称。

  3. 在左侧导航栏,选择基础设置 > 回源设置,在回源设置页面,单击创建规则

  4. 创建回源规则页面,配置如下参数。

    参数

    说明

    回源方式

    选择重定向回源

    回源条件

    按需求选择触发的回源条件,触发回源需同时满足配置的所有回源条件。回源条件说明如下:

    • HTTP状态码:默认勾选且仅支持 HTTP状态码404
    • 文件名前缀:勾选后设置需要触发的文件名前缀。
    • 文件名后缀: 勾选后设置需要触发的文件名后缀。

    说明

    • 例如您勾选了文件名前后缀并分别设置为 testobject.png,当您访问存储桶下的 test***object.png 对象不存在且返回的 HTTP 状态码为 404 时,TOS 会提供规则中设置的回源地址供您访问。
    • 勾选文件名前后缀后,您需要设置相应的信息,该条件才会生效;不填则表示不会匹配。
    • 如果您想匹配前缀下的所有后缀名,只需要勾选文件名前缀;或者勾选文件名后缀后不设置任何信息。

    指定来源域名回源

    指定访问源站的域名,指定后,仅该域名可以访问源站触发重定向回源。

    注意

    • 最多指定 20 个来源域名。
    • 域名需要能访问到存储桶,建议填写存储桶绑定的自定义域名。

    回源类型

    设置回源的源站类型,说明如下:

    • 选中回源私有桶:表示源站为 TOS 私有桶或其他云厂商的私有桶。
    • 不选中回源私有桶:表示源站为 TOS 公共桶或其他云厂商的公共桶。

    回源地址

    源站为公共桶时的回源地址

    设置回源条件触发后需要跳转的回源地址,支持三种设置方式,说明如下:

    • 添加前后缀:触发回源规则时,跳转至请求的对象名前后添加前后缀的文件,文件地址说明如下:
      1. 协议:必填,可选 httphttps,默认为 http
      2. 域名:必填,必须为域名格式,不支持 IP 地址。
      3. 文件名前缀:选填,设置后,请求源站时,将在对象名的前面添加前缀。最后返回给客户端的对象名称与此前缀无关,仍然是客户端请求的对象名称。
      4. 文件名后缀:选填,设置后,请求源站时,将在请求的对象名的后面添加后缀。最后返回给客户端的对象名称与此后缀无关,仍然是客户端请求的对象名称。
        图片
        例如在客户端请求 aaa.txt 对象,设置文件名前缀为 bbb,则在源站请求的对象是 bbbaaa.txt,最后返回给客户端的对象仍然为 aaa.txt。
    • 跳转固定地址:触发回源规则时,默认全部跳转至固定的文件。固定地址说明如下:
      • 协议:必填,可选 httphttps,默认为 http
      • 回源域名:必填,必须为域名格式,不支持 IP 地址。
    • 替换文件名前缀:触发回源规则时,跳转至替换文件名前缀的文件。说明如下:
      • 协议:必填。可选 httphttps,默认为 http
      • 回源域名:必填,必须为域名格式,不支持 IP 地址。
      • 替换前缀:选填。替换前缀需要与回源条件中的文件名前缀搭配使用,此处文件名前缀用于指定需要被替换的对象名前缀,替换前缀用于指定对象名前缀替换后的值。
        • 不填写替换后的前缀字段时,相当于截断;不填写替换前的文件名前缀时,相当于添加文件名前缀。
        • 最后返回给客户端的对象名称与此前缀无关,仍然是客户端请求的对象名称。
          例如在客户端请求 aaa.txt 对象,设置回源条件文件名前缀为 aa,替换前缀为 bb,则在源站请求的对象为 bba.txt 对象,最后返回给客户端的对象是 aaa.txt。

    注意

    • 只支持添加 1 个重定向地址。
    • 如果您选择跳转固定地址,则不支持拉取文件等操作。
    • 设置完成后,您可以参考回源地址区域下方的回源获取文件地址,确认回源地址是否设置正确。

    源站为私有桶时的回源地址

    不同的源站类型,配置方式不同,说明如下:

    • 源站为火山引擎:设置源站服务商火山引擎,单击点击授权,授予 TOS 访问您私有桶的权限。选择回源的存储桶,回源桶必须是当前账号下的存储桶,然后设置回源地址,说明如下:
      • 添加前后缀:触发回源规则后,将跳转至请求的对象名前后添加前后缀的文件,选择回源桶后,TOS 会自动填充域名,您只需要设置协议文件名前缀文件名后缀,说明如下:
        • 协议:必填,可选 httphttps,默认为 http
        • 文件名前缀:选填,设置后,请求源站时,将在对象名的前面添加前缀。最后返回给客户端的对象名称与此前缀无关,仍然是客户端请求的对象名称。
        • 文件名后缀:选填,设置后,请求源站时,将在请求的对象名的后面添加后缀。最后返回给客户端的对象名称与此后缀无关,仍然是客户端请求的对象名称。
          例如在客户端请求 aaa.txt 对象,设置文件名前缀为 bbb,则在源站请求的对象是 bbbaaa.txt,最后返回给客户端的对象仍然为 aaa.txt。
      • 替换文件名前缀:触发回源规则时,跳转至替换文件名前缀的文件。选择回源桶后,TOS 会自动填充域名,您只需要设置协议替换前缀
        • 协议:必填。可选 httphttps,默认为 http
        • 替换前缀:选填。替换前缀需要与回源条件中的文件名前缀搭配使用,此处文件名前缀用于指定需要被替换的对象名前缀,替换前缀用于指定对象名前缀替换后的值。
          • 不填写替换后的前缀字段时,相当于截断;不填写替换前的文件名前缀时,相当于添加文件名前缀。
          • 最后返回给客户端的对象名称与此前缀无关,仍然是客户端请求的对象名称。
            例如在客户端请求 aaa.txt 对象,设置回源条件文件名前缀为 aa,替换前缀为 bb,则在源站请求的对象为 bba.txt 对象,最后返回给客户端的对象是 aaa.txt。
    • 源站为百度云、其他S3存储协议的云厂商:设置源站服务商百度云其他S3存储协议,填写访问源站服务商的 AccessKey、SecretKey,源站 Region,回源的存储桶和回源地址。回源地址配置方式说明如下:
      • 添加前后缀:触发回源规则后,将跳转至请求的对象名前后添加前后缀的文件。说明如下:
        • 协议:必须设置为 https
        • 域名:填写的是源站服务商的访问域名,不能包含存储桶的名称。
        • 文件名前缀:选填,设置后,请求源站时,将在对象名的前面添加前缀。最后返回给客户端的对象名称与此前缀无关,仍然是客户端请求的对象名称。
        • 文件名后缀:选填,设置后,请求源站时,将在请求的对象名的后面添加后缀。最后返回给客户端的对象名称与此后缀无关,仍然是客户端请求的对象名称。
          例如在客户端请求 aaa.txt 对象,设置文件名前缀为 bbb,则在源站请求的对象是 bbbaaa.txt,最后返回给客户端的对象仍然为 aaa.txt 。
      • 替换文件名前缀:触发回源规则时,跳转至替换文件名前缀的文件。说明如下:
        • 协议:必须设置为 https
        • 域名:填写的是源站服务商的访问域名,不能包含存储桶的名称。
        • 替换前缀:选填。替换前缀需要与回源条件中的文件名前缀搭配使用,此处文件名前缀用于指定需要被替换的对象名前缀,替换前缀用于指定对象名前缀替换后的值。
          • 不填写替换后的前缀字段时,相当于截断;不填写替换前的文件名前缀时,相当于添加文件名前缀。
          • 最后返回给客户端的对象名称与此前缀无关,仍然是客户端请求的对象名称。
            例如在客户端请求 aaa.txt 对象,设置回源条件文件名前缀为 aa,替换前缀为 bb,则在源站请求的对象为 bba.txt 对象,最后返回给客户端的对象是 aaa.txt。

    注意

    • 只支持添加 1 个重定向地址。
    • 设置完成后,您可以参考回源地址区域下方的回源获取文件地址,确认回源地址是否设置正确。

    是否支持 HeadObject

    是否支持 HeadObject 请求触发重定向回源。默认仅支持 GetObject 请求触发重定向回源,开启后,将同时支持 GetObject 和 HeadObject 触发重定向回源。默认关闭。

    回源是否携带请求参数

    选择是否将请求携带的 queryString 透传至源站。默认开启。

    是否回源拉取文件

    开启后,TOS 会先重定向到源站地址,然后后台异步拉取文件并保存到 TOS 。默认开启。

    注意

    是否回源拉取文件参数仅适用于 GetObject 请求触发重定向回源场景,在 HeadObject 请求触发重定向回源场景下,该参数无效。

    拉取文件是否携带请求参数

    拉取文件时,选择是否将请求携带的 queryString 透传至源站。默认关闭。

    异步拉取是否跟随源站重定向

    拉取文件时是否跟随源站的 3XX 重定向请求回源,最多可重定向 3 次。默认关闭。

    HTTP Header 传递规则

    TOS 在访问指定的源站时,允许传递的响应头。支持以下规则:

    • 透传所有 HTTP Header:默认值,选择后透传所有参数,但以下请求头不会透传:Host、Content-length、Date、Authorization。
    • 透传指定 HTTP Header:指定允许传递的 Header,最多可添加 10 个。
    • 禁止透传所有 HTTP Header:选择后禁止透传所有参数。
    • 禁止透传指定 HTTP Header:指定禁止传递的 Header,最多可添加 10 个。

    新增指定HTTP Header

    指定 HTTP Header 的 Key 和 Value,指定后,会在 Header 中添加该 Key 和 Value,并透传到源站。

    注意

    • 最多指定 10 个HTTP Header。
    • 不支持指定 Content-Length、Date、Range、Authorization 类型的 Header。
  5. 单击提交
    重定向规则创建完成后,您可以在策略列表中查看已创建的规则。

其他操作

  • 编辑回源规则:单击目标规则操作列的编辑,即可修改回源规则。
  • 删除回源规则:单击目标规则操作列的删除,在弹出的对话框中单击确定,即可删除回源规则。
  • 上移/下移回源规则:选择目标规则操作列的 ... > 上移或者 ... > 下移,即可调整回源规则顺序。