更新时间:2024-03-04 GMT+08:00

配置数据回源规则

操作场景

请参见数据回源

您可以新建数据回源规则,也可以从其他桶复制已有数据回源规则。

约束与限制

请参见数据回源

创建镜像回源规则

  1. OBS管理控制台左侧导航栏选择“对象存储”
  2. 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
  3. 在左侧导航栏选中“数据回源”,进入“数据回源”页面。
  4. 单击“创建”。

    图1 创建镜像回源规则

  5. 配置镜像回源规则参数,参数说明如表1

    表1 镜像回源规则参数说明

    参数

    说明

    资源类型

    设置回源地址(源站)的类型。

    • 公有类型:源站数据来源于公有对象存储。
    • 私有类型:源站数据来源于部分云厂商的私有对象存储。

    回源条件

    设置回源规则的触发条件。

    回源条件由HTTP状态码文件名前缀共同确定,表示访问桶中符合文件名前缀要求的对象时,如果对象不存在(返回404错误),则满足回源条件。

    文件名前缀输入规则:

    • 不能超过1023个字符。
    • 不能与已有回源规则配置的文件名前缀存在相互包含或重叠的关系。
    • 如果不输入,则表示配置到尚未匹配桶内任何回源规则的文件。仅能配置一条文件名前缀为空的回源规则。

    示例:配置123/前缀,访问桶中123/456.txt文件时会触发回源规则。

    添加前后缀

    OBS向源站请求数据时,在客户端请求的对象名前后增加前后缀。最终返回给OBS与客户端的对象名与此前后缀无关,仍保持客户端请求的对象名。

    示例:客户端请求abc.txt时触发回源规则,如果添加前缀为123,则OBS向源端请求的对象名变为123abc.txt,该对象下载到OBS中仍以abc.txt名称保存并返回给客户端。

    替换前缀

    OBS向源站请求数据时,替换回源条件中的文件名前缀。最终返回给客户端的对象名与此前缀无关,仍保持客户端请求的对象名。

    示例:回源条件配置文件前缀为123,替换前缀配置为abc,客户端请求123456.txt时触发回源规则,OBS向源端请求的对象名变为abc456.txt,该对象下载到OBS中仍以123456.txt名称保存并返回给客户端。

    回源地址

    设置回源地址(源站地址),支持配置主站和备站。

    回源时会优先使用主站地址,如果同时配置多个主站,会轮询访问所有主站。如果配置2个及以上主站,第一次请求主站失败,并且满足重试条件时,会选用另一个主站重试一次。至少配置一个主站,最多同时配置5个主站。主站全部回源失败时,会使用备站地址进行重试。

    格式:http或https://回源域名/静态路径

    • 回源域名为源站的域名。
      • 如果源端为HTTP公共可访问的桶,则此地址为桶域名地址。
      • 如果源端为其他云厂商的私有桶,则此地址为区域域名地址。当前仅支持部分云厂商的私有桶。
    • 静态路径为目标文件所在的目录信息,例如静态路径配置123/,表示目标文件在123/目录下。

    重试条件

    选择回源地址重试的条件。

    4XX和4开头的具体错误码不能同时配置,5XX和5开头的具体错误码不能同时配置。最多支持同时配置20个错误码。

    携带请求字符串

    开启后,会将请求URL中查询参数传递到源站。

    重定向请求响应策略

    开启后,如果源站配置了重定向,会跟踪源站的3xx重定向请求,前往重定向的目标获取资源,并将该资源保存到OBS上。最多跟随10次重定向。

    重定向时不携带Referer

    开启后,如果源站配置了重定向,处理源站重定向时会去掉请求中的Referer头域。

    HTTP header传递规则

    可以通过设置HTTP header传递规则,规定客户端发送给OBS的请求经过镜像回源由OBS传递给源站时,允许传递的HTTP header参数。相关参考中提供了一个配置示例供参考,同时列出了不支持的HTTP header。

    • 允许传递所有参数/允许传递指定参数:设置允许传递的HTTP header参数。
    • 禁止传递指定参数:设置禁止传递的HTTP header参数。当客户端请求携带此header时,OBS不会传递给源站。当禁止和允许规则冲突时,禁止规则优先。
    • 设置自定义参数:给指定header设置自定义取值,如果客户端请求携带此header,OBS在传递给源站时会将header取值修改为自定义的取值。

    IAM委托

    镜像回源需使用IAM委托功能,委托OBS获取源站数据。委托需要给OBS服务授予“Tenant Administrator”权限,且委托持续时间必须是永久。如果无合适的IAM委托,则可创建一个新的IAM委托,请参考创建IAM委托

  6. 单击“确定”。

复制镜像回源规则

  1. OBS管理控制台左侧导航栏选择“对象存储”
  2. 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
  3. 在左侧导航栏选中“数据回源”,进入“数据回源”页面。
  4. 单击“复制”。
  5. 选择复制源,即数据回源规则所在的源桶。

    • 从源桶复制数据回源规则的操作为增量复制,不会删除当前桶已存在的数据回源规则,与已存在的数据回源规则冲突的规则不会复制。
    • 源桶和目标桶的桶版本号都必须是3.0。
    • 复制时支持修改回源地址,回源地址配置说明请参见表1
    • 您可以按需移除不需要复制的数据回源规则。
    • 单桶数据回源规则上限为5条,如果已有规则+复制规则的数量超过上限,将会复制失败,请先删除多余规则再进行复制。
    图2 复制数据回源规则

  6. 单击“确定”,将源桶的数据回源规则复制到当前桶。

相关参考

镜像回源的HTTP header传递规则参数配置示例

假设参数配置如图3所示。

图3 HTTP header传递规则配置示例

根据上述规则,如果客户端发送到OBS请求的header部分如下所示:

GET /ObjectName HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com
aaa:aaa
bbb:bbb
ccc:ccc

在触发镜像回源规则后,OBS发送给源站的请求如下:

GET /ObjectName HTTP/1.1 
Host: source.com 
aaa:aaa
ccc:111

镜像回源过程中透传HTTP header情况

  • 从源站透传到客户端只支持以下HTTP header:
    • Content-Type
    • Content-Language
    • Content-Encoding
    • Content-Disposition
    • Cache-Control
    • Expires
  • 从客户端透传到源站不支持以下HTTP header:
    1. 以下前缀开头的HTTP header:

      x-obs-

    2. 所有标准HTTP header,例如:
      • Content-Length
      • Authorization2
      • Authorization
      • Range
      • Date