设置镜像回源规则
功能介绍
本接口用于为指定桶配置镜像回源策略。接口是幂等的,如果桶上已存在相同策略内容,则返回成功,status code返回值为200;否则status code返回值为201。
请求消息样式
PUT /?mirrorBackToSource HTTP/1.1 Host: bucketname.obs.cn-north-4.myhuaweicloud.com Authorization: authorization Content-Type: application/json Content-Length: length Date: date policy json body
请求消息参数
该请求消息中不使用消息参数。
请求消息头
该请求使用公共消息头,具体参见表3。
请求消息元素
参数名称 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
rules |
是 |
Container |
参数解释: 策略规则数组。rules是id、 condition、redirect的父节点。 约束限制: 同一个桶下的不同策略前缀不能重复和起始包含,委托建议使用同一个。 取值范围: 因为每个桶最多创建10条镜像数据回源规则,所以数组长度的取值范围是[1,10]。具体请详见rules参数说明。 默认取值: 不涉及 |
参数名称 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
id |
是 |
String |
参数解释: 设置镜像回源规则的ID。当前桶上配置的镜像回源规则的唯一标识。 约束限制: 该规则ID为桶内唯一,不能与桶内其他策略重复。 取值范围: 长度为1~256的字符串,并且字符只能是大写字母、小写字母、数字、下划线(_)或连字符(-)。 默认取值: 不涉及 |
condition |
是 |
Container |
参数解释: 触发回源功能的条件。condition是httpErrorCodeReturnedEquals、objectKeyPrefixEquals的父节点。 约束限制: 不涉及 取值范围: 请详见表3。 默认取值: 不涉及 |
redirect |
是 |
Container |
参数解释: 实现回源功能的相关参数。redirect是agency、publicSource、retryConditions、passQueryString、mirrorFollowRedirect、replaceKeyWith、replaceKeyPrefixWith、vpcEndpointURN、redirectWithoutReferer、mirrorAllowHttpMethod的父节点。 约束限制: 不涉及 取值范围: 请详见表4。 默认取值: 不涉及 |
参数名称 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
httpErrorCodeReturnedEquals |
是 |
Integer |
参数解释: 触发回源功能的错误码。当下载请求返回此错误码时,会触发回源功能。 约束限制: 不涉及 取值范围: 404:指对象在OBS桶中不存在。 默认取值: 404 |
objectKeyPrefixEquals |
否 |
String |
参数解释: 触发回源功能的对象名前缀。当触发回源的请求里对象名满足此前缀,才会继续执行回源功能。 约束限制:
取值范围: 长度为0~1023的字符串,值允许为任意字符。 默认取值: 不涉及 |
参数名称 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
agency |
是 |
String |
参数解释: 委托名。客户通过委托赋予OBS服务“查询用户桶内指定对象是否存在”以及“向用户桶内上传对象”的权限。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
publicSource |
否 |
Container |
参数解释: 公共可访问的源端配置。当源端为公共可访问的资源时,必选。publicSource是sourceEndpoint的父节点。 约束限制: 不涉及 取值范围: 请详见publicSource参数说明。 默认取值: 不涉及 |
retryConditions |
否 |
Array |
参数解释: 回源地址切换的条件。 约束限制: 4XX和4开头的具体错误码不能同时配置,5XX和5开头的错误码不能同时配置。 取值范围: 最大支持同时配置20个错误码,如4XX,5XX以及400~499,500~599等具体错误码。 默认取值: 不涉及 |
passQueryString |
是 |
Boolean |
参数解释: 是否携带请求字符串。 约束限制: 如果取值为true,但query参数里有签名信息,则将签名信息去掉,再传递剩余参数。 取值范围:
默认取值: false |
mirrorFollowRedirect |
是 |
Boolean |
参数解释: 是否跟随源站3xx重定向请求获取到资源。 约束限制: 不涉及 取值范围:
默认取值: false |
mirrorHttpHeader |
否 |
Container |
参数解释: HTTP header传递规则。mirrorHttpHeader是passAll、pass、remove、set的父节点。 约束限制: 不涉及 取值范围: 默认取值: 不涉及 |
replaceKeyWith |
否 |
String |
参数解释: 去源端下载对象的时候是否添加前后缀。 约束限制: 如果replaceKeyWith和ReplaceKeyPrefixWith同时为空,则ReplaceKeyPrefixWith生效。同时非空为非法请求。 取值范围:
${key}为关键字,prefix为要添加的前缀,suffix为要添加的后缀。同时prefix和suffix的总长度为[0, 1023]。 默认取值: 不涉及 |
replaceKeyPrefixWith |
否 |
String |
参数解释: 替换前缀objectKeyPrefixEquals的字符串。如果去源端下载对象时,需要替换当前的对象名前缀,则修改此项配置。 约束限制: 如果replaceKeyWith和ReplaceKeyPrefixWith同时为空,则ReplaceKeyPrefixWith生效。同时非空为非法请求。 取值范围: 长度为0~1023的字符串。 默认取值: 不涉及 |
vpcEndpointURN |
否 |
String |
参数解释: 终端节点服务的URN。 约束限制: 不涉及 取值范围: 长度为0~127的字符串。 默认取值: 不涉及 |
redirectWithoutReferer |
否 |
Boolean |
参数解释: 是否将原host作为referer头域携带到重定向的目的地址去。 约束限制: 不涉及 取值范围: false:将原host作为referer头域携带到重定向的目的地址去。 true:不会将原host作为referer头域携带到重定向的目的地址去。 默认取值: false |
mirrorAllowHttpMethod |
否 |
Array |
参数解释: 支持透传的请求方法。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
参数名称 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
sourceEndpoint |
否 |
Container |
参数解释: 公共可访问的源端地址。sourceEndpoint是master、slave的父节点。 约束限制: 不涉及 取值范围: 默认取值: 不涉及 |
参数名称 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
master |
否 |
Array |
参数解释: 主源端地址。如果源端为HTTP公共可访问的桶,则此地址为桶域名地址。如果源端为其他云厂商的私有桶,则此地址为区域域名地址。 约束限制: 回源时会优先使用主源站地址,如果同时配置1~5个主地址,会轮询访问所有主地址。如果配置2个及以上主地址,第一次请求主地址失败,并且满足重试条件时,会选用另一个主地址重试一次。 取值范围: 单个源站地址的格式为https://xxx.yyy.zzz或http://xxx.yyy.zzz,长度为10~255的字符串。 默认取值: 不涉及 |
slave |
否 |
Array |
参数解释: 备源端地址。如果源端为HTTP公共可访问的桶,则此地址为桶域名地址。如果源端为其他云厂商的私有桶,则此地址为区域域名地址。 约束限制: 主地址回源失败时,会选用一个备地址进行重试。最多同时配置5个备地址。 取值范围: 单个源站地址的格式为https://xxx.yyy.zzz或http://xxx.yyy.zzz,长度为10~255的字符串。 默认取值: 不涉及 |
参数名称 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
passAll |
否 |
Boolean |
参数解释: 是否透传全部HTTP header到源端。 约束限制:
取值范围:
默认取值: false |
pass |
否 |
Array |
参数解释: 指定透传的HTTP header列表。 约束限制: 取值仅支持由大小写字母、数字、中划线、下划线组成。 取值范围: 最多展示10个HTTP header,每个HTTP header的长度范围是[1, 63]。 默认取值: 不涉及 |
remove |
否 |
Array |
参数解释: 不允许透传的HTTP header列表。 约束限制:
取值范围: 最多展示10个HTTP header,每个HTTP header的长度范围是[1, 63]。 默认取值: 不涉及 |
set |
否 |
Array |
参数解释: 设置透传的HTTP header值列表。 约束限制:
取值范围: set最多展示10个HTTP header,每个HTTP header包含一个key和一个value。key和value的具体介绍请参见set参数说明。 默认取值: 不涉及 |
响应消息样式
HTTP/1.1 status Server: OBS Date: date Content-Length: length
响应消息头
该请求的响应消息使用公共消息头,具体请参考表1。
响应消息元素
该请求的响应消息中不带消息元素。
请求示例
PUT /?mirrorBackToSource HTTP/1.1 Host: bucketname.obs.cn-north-4.myhuaweicloud.com Authorization: OBS H4IPJX0TQTHTHEBQQCEC:sc2PM13Wlfcoc/YZLK0MwsI2Zpo= Content-Type: application/json Content-Length: 1049 Date: Tue, 21 Jul 2020 15:38:30 GMT { "rules": [{ "id": "abc123", "condition": { "httpErrorCodeReturnedEquals": "404", "objectKeyPrefixEquals": "video/" }, "redirect": { "agency": "agency", "publicSource": { "sourceEndpoint": { "master":["http://bucket1.xxx.yyy.com", "https://bucket2.xxx.yyy.com"], "slave": ["http://bucket3.xxx.yyy.com", "https://bucket4.xxx.yyy.com"] } }, "retryConditions": ["4XX", "5XX"], "passQueryString": true, "mirrorFollowRedirect": true, "redirectWithoutReferer": true, "mirrorAllowHttpMethod":["HEAD"], "mirrorHttpHeader": { "passAll": false, "pass": ["content-encoding"], "remove": ["content-type"], "set": [{ "key": "helloworld", "value": "2222" }] }, "replaceKeyWith": "prefix${key}suffix", "replaceKeyPrefixWith": "picture/", "vpcEndpointURN": "001" } }] }
响应示例
HTTP/1.1 201 Created Server: OBS Date: Tue, 07 Jul 2020 07:29:13 GMT Content-Length: 0