设置重定向回源后,当请求的对象在桶中不存在时,TOS 支持返回重定向地址给请求方,请求方再通过重定向地址获取对象或对象元数据。本文介绍如何设置重定向回源。
背景信息
重定向回源功能支持以下两个操作:
- 使用 GetObject 触发重定向回源:当请求的对象在桶中不存在时,TOS 将返回重定向地址给请求方,请求方再通过重定向的地址获取对象。
- 使用 HeadObject 触发镜像回源:当请求元数据的对象在桶中不存在时,TOS 将返回重定向地址给请求方,请求方再通过重定向的地址获取对象元数据。
注意事项
场景 | 类别 | 注意事项 |
---|
使用 GetObject 触发重定向回源 | 回源对象大小 | 最大支持请求 300GiB 的对象。 |
回源条件 | 默认当 GetObject 且返回的 HTTP 状态码为 404 时,触发重定向回源,从源站拉取文件。 |
使用 HeadObject 触发镜像回源 | 回源限制 | - 不支持通过 HeadObject 请求重定向回源软链接对象。
- 通过 HeadObject 请求重定向回源对象元数据时,是否回源拉取文件参数无效,即不支持在该场景下从源站拉取文件写入到 TOS。
|
回源条件 | 只有在创建回源规则时开启是否支持 HeadObject 功能, 且 HeadObject 请求返回的 HTTP 状态码为 404 时,才会触发重定向回源。 |
操作步骤
登录对象存储控制台。
在左侧导航栏,单击桶列表,在桶列表页面单击目标桶名称。
在左侧导航栏,选择基础设置 > 回源设置,在回源设置页面,单击创建规则。
在创建回源规则页面,配置如下参数。
参数 | 说明 |
---|
回源方式 | 选择重定向回源。 |
回源条件 | 按需求选择触发的回源条件,触发回源需同时满足配置的所有回源条件。回源条件说明如下: - HTTP状态码:默认勾选且仅支持 HTTP状态码为 404。
- 文件名前缀:勾选后设置需要触发的文件名前缀。
- 文件名后缀: 勾选后设置需要触发的文件名后缀。
说明 - 例如您勾选了文件名前后缀并分别设置为
test 和 object.png ,当您访问存储桶下的 test***object.png 对象不存在且返回的 HTTP 状态码为 404 时,TOS 会提供规则中设置的回源地址供您访问。 - 勾选文件名前后缀后,您需要设置相应的信息,该条件才会生效;不填则表示不会匹配。
- 如果您想匹配前缀下的所有后缀名,只需要勾选文件名前缀;或者勾选文件名后缀后不设置任何信息。
|
指定来源域名回源 | 指定访问源站的域名,指定后,仅该域名可以访问源站触发重定向回源。 注意 - 最多指定 20 个来源域名。
- 域名需要能访问到存储桶,建议填写存储桶绑定的自定义域名。
|
回源类型 | 设置回源的源站类型,说明如下: - 选中回源私有桶:表示源站为 TOS 私有桶或其他云厂商的私有桶。
- 不选中回源私有桶:表示源站为 TOS 公共桶或其他云厂商的公共桶。
|
回源地址 | 源站为公共桶时的回源地址 | 设置回源条件触发后需要跳转的回源地址,支持三种设置方式,说明如下: - 添加前后缀:触发回源规则时,跳转至请求的对象名前后添加前后缀的文件,文件地址说明如下:
- 协议:必填,可选 http 或 https,默认为 http。
- 域名:必填,必须为域名格式,不支持 IP 地址。
- 文件名前缀:选填,设置后,请求源站时,将在对象名的前面添加前缀。最后返回给客户端的对象名称与此前缀无关,仍然是客户端请求的对象名称。
- 文件名后缀:选填,设置后,请求源站时,将在请求的对象名的后面添加后缀。最后返回给客户端的对象名称与此后缀无关,仍然是客户端请求的对象名称。
例如在客户端请求 aaa.txt 对象,设置文件名前缀为 bbb,则在源站请求的对象是 bbbaaa.txt,最后返回给客户端的对象仍然为 aaa.txt。
- 跳转固定地址:触发回源规则时,默认全部跳转至固定的文件。固定地址说明如下:
- 协议:必填,可选 http 或 https,默认为 http。
- 回源域名:必填,必须为域名格式,不支持 IP 地址。
- 替换文件名前缀:触发回源规则时,跳转至替换文件名前缀的文件。说明如下:
- 协议:必填。可选 http 或 https,默认为 http。
- 回源域名:必填,必须为域名格式,不支持 IP 地址。
- 替换前缀:选填。替换前缀需要与回源条件中的文件名前缀搭配使用,此处文件名前缀用于指定需要被替换的对象名前缀,替换前缀用于指定对象名前缀替换后的值。
- 不填写替换后的前缀字段时,相当于截断;不填写替换前的文件名前缀时,相当于添加文件名前缀。
- 最后返回给客户端的对象名称与此前缀无关,仍然是客户端请求的对象名称。
例如在客户端请求 aaa.txt 对象,设置回源条件的文件名前缀为 aa,替换前缀为 bb,则在源站请求的对象为 bba.txt 对象,最后返回给客户端的对象是 aaa.txt。
注意 - 只支持添加 1 个重定向地址。
- 如果您选择跳转固定地址,则不支持拉取文件等操作。
- 设置完成后,您可以参考回源地址区域下方的回源获取文件地址,确认回源地址是否设置正确。
|
源站为私有桶时的回源地址 | 不同的源站类型,配置方式不同,说明如下: - 源站为火山引擎:设置源站服务商为火山引擎,单击点击授权,授予 TOS 访问您私有桶的权限。选择回源的存储桶,回源桶必须是当前账号下的存储桶,然后设置回源地址,说明如下:
- 添加前后缀:触发回源规则后,将跳转至请求的对象名前后添加前后缀的文件,选择回源桶后,TOS 会自动填充域名,您只需要设置协议、文件名前缀和文件名后缀,说明如下:
- 协议:必填,可选 http 或 https,默认为 http。
- 文件名前缀:选填,设置后,请求源站时,将在对象名的前面添加前缀。最后返回给客户端的对象名称与此前缀无关,仍然是客户端请求的对象名称。
- 文件名后缀:选填,设置后,请求源站时,将在请求的对象名的后面添加后缀。最后返回给客户端的对象名称与此后缀无关,仍然是客户端请求的对象名称。
例如在客户端请求 aaa.txt 对象,设置文件名前缀为 bbb,则在源站请求的对象是 bbbaaa.txt,最后返回给客户端的对象仍然为 aaa.txt。
- 替换文件名前缀:触发回源规则时,跳转至替换文件名前缀的文件。选择回源桶后,TOS 会自动填充域名,您只需要设置协议和替换前缀。
- 协议:必填。可选 http 或 https,默认为 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。
|
单击提交。
重定向规则创建完成后,您可以在策略列表中查看已创建的规则。
其他操作
- 编辑回源规则:单击目标规则操作列的编辑,即可修改回源规则。
- 删除回源规则:单击目标规则操作列的删除,在弹出的对话框中单击确定,即可删除回源规则。
- 上移/下移回源规则:选择目标规则操作列的 ... > 上移或者 ... > 下移,即可调整回源规则顺序。