设置桶QoS配置-SetBucketQosInfo
功能介绍
本接口用于为指定桶配置QoS限制,支持对桶请求的Qps、带宽、并发请求数配置QoS限制。
接口约束
- 当前配置桶QoS为邀测功能,仅对开放的租户使用。
- 当前仅桶级QoS规则支持用户自定义,租户级QoS规则可联系提交工单联系技术人员调整。如果桶没有配置桶级QoS规则,那么该桶最大可使用到账号下集群资源的最大值。
- 桶所属集群的指标如果没有限制,那么桶可配置的对应指标最大为263-1。
- QPS或带宽任一指标超过阈值会触发流控。触发流控时,请求时延会上升,请求响应中会携带头域x-obs-qos-delay-time,该头域为请求被流控的时长,单位为ms。上传类请求(PUT上传、上传段等)会返回精确的被流控时长,下载类请求(下载对象等)会返回根据流控程度和文件大小估算出的被流控时长。
- 并发请求数超过阈值会触发流控。触发流控时,请求会立即失败,返回429。当QPS或带宽流控时,由于请求时延上升,也会导致并发请求数增加。
授权信息
您必须是桶拥有者或拥有设置桶QoS配置的权限,才能调用本接口,建议使用IAM或桶策略进行授权。了解更多OBS授权方式请参见OBS不同权限控制方式的区别。
- 如果使用IAM授权,那么请在“角色与策略授权”、“身份策略授权”两种IAM授权方式中选择一种,并配置相应权限:
- 如果使用角色与策略授权(旧版IAM,即IAM v3接口),需具备obs:bucket:PutBucketQosInfo权限,授权操作请参见创建IAM自定义策略。
- 如果使用身份策略授权(新版IAM,即IAM v5接口),如下表所示,需具备obs:bucket:putBucketQosInfo权限,授权操作请参见创建IAM自定义身份策略。
授权项
Action
访问级别
Access Level
资源类型(*为必须)
Resource Type (*: required)
Condition Key
Alias
依赖的授权项
Dependencies
obs:bucket:putBucketQosInfo
Write
bucket *
-
-
-
- obs:EpochTime
- obs:SourceIp
- obs:TlsVersion
- obs:CustomDomain
- 如果使用桶策略进行授权,需具备obs:bucket:PutBucketQosInfo权限,具体操作请参见自定义创建桶策略。
URI
PUT /
请求消息样式
以下为请求消息样例,请将示例中的BucketName修改为您的桶名,RegionID修改为桶所在的区域ID,可参考支持区域获取区域ID。
PUT /?x-obs-qosInfo HTTP/1.1 User-Agent: curl/7.29.0 Host: BucketName.obs.RegionID.myhuaweicloud.com Accept: */* Date: GMT Date Authorization: SignatureValue Content-Type: application/xml Content-Length: length <?xml version="1.0" encoding="UTF-8"?> <PutBucketQoSRequestBody> <QoSConfiguration> <QoSRule> <NetworkType>extranet</NetworkType> <ConcurrentRequestLimit>0</ConcurrentRequestLimit> <QpsLimit> <Get>1500</Get> <PutPostDelete>1000</PutPostDelete> <List>1500</List> </QpsLimit> <BpsLimit> <Get>512000</Get> <PutPost>512000</PutPost> <Total>512000</Total> </BpsLimit> </QoSRule> <QoSRule> <NetworkType>intranet</NetworkType> <ConcurrentRequestLimit>1000</ConcurrentRequestLimit> <QpsLimit> <Get>1500</Get> <PutPostDelete>1000</PutPostDelete> <List>1000</List> </QpsLimit> <BpsLimit> <Get>512000</Get> <PutPost>512000</PutPost> <Total>512000</Total> </BpsLimit> </QoSRule> <QoSRule> <NetworkType>total</NetworkType> <ConcurrentRequestLimit>1000</ConcurrentRequestLimit> <QpsLimit> <Get>2000</Get> <PutPostDelete>2000</PutPostDelete> <List>2000</List> </QpsLimit> <BpsLimit> <Get>1024000</Get> <PutPost>1024000</PutPost> </BpsLimit> </QoSRule> </QoSConfiguration> </PutBucketQoSRequestBody>
URI参数(URI Parameters)
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| x-obs-qosInfo | 是 | String | 参数解释: 用于标识API接口与桶QoS有关。 约束限制: 计算签名时,请在CanonicalizedResource中添加“/BucketName/?x-obs-qosInfo”,详情参见签名计算。 取值范围: x-obs-qosInfo 默认取值: 不涉及 |
请求头参数(Request headers)
该请求使用公共请求头,具体参见表3。
请求体参数(Request body)
配置桶QoS请求需要在消息元素中带上桶QoS配置信息,请求消息体为XML格式。元素的具体含义如表2所示。
| 参数名称 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| PutBucketQoSRequestBody | 是 | Container | 参数解释: 桶QoS配置参数的根元素。PutBucketQoSRequestBody是QoSConfiguration的父节点。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| QoSConfiguration | 是 | Container | 参数解释: 桶QoS配置信息内容。 约束限制: 不涉及 取值范围: 请详见QoSConfiguration。 默认取值: 不涉及 |
| 参数名称 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| QoSRule | 否 | Container | 参数解释: 桶QoS规则数组。 约束限制: 不涉及 取值范围: 请详见QoSRule。 默认取值: 不涉及 |
| 参数名称 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| NetworkType | 是 | Enum | 参数解释: 桶QoS限制范围。 约束限制: 不允许有重复值。 取值范围:
默认取值: 不涉及 |
| ConcurrentRequestLimit | 否 | Integer | 参数解释: 桶请求并发限制。并发指同一时刻的正在进行的请求数量,单位:次/s。 约束限制:
取值范围: 0-9223372036854775807 默认取值: 不涉及 |
| QpsLimit | 否 | Container | 参数解释: 桶请求Qps限制规则。 约束限制:
取值范围: 请详见QpsLimit。 默认取值: 不涉及 |
| BpsLimit | 否 | Container | 参数解释: 桶请求带宽限制规则。 约束限制:
取值范围: 请详见BpsLimit。 默认取值: 不涉及 |
| 参数名称 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| Get | 否 | Integer | 参数解释: 桶下载请求Qps限制,单位:次/s。 约束限制:
取值范围: 0-9223372036854775807 默认取值: 不涉及 |
| PutPostDelete | 否 | Integer | 参数解释: 桶上传请求Qps限制,单位:次/s。 约束限制:
取值范围: 0-9223372036854775807 默认取值: 不涉及 |
| List | 否 | Integer | 参数解释: 桶列举请求Qps限制,单位:次/s。 约束限制:
取值范围: 0-9223372036854775807 默认取值: 不涉及 |
| Total | 否 | Integer | 参数解释: 桶总请求Qps限制,单位:次/s。不包含list请求。 约束限制:
取值范围: 0-9223372036854775807 默认取值: 不涉及 |
| 参数名称 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| Get | 否 | Integer | 参数解释: 桶下载请求带宽限制,单位:Byte/s。 约束限制:
取值范围: 0-9223372036854775807 默认取值: 不涉及 |
| PutPost | 否 | Integer | 参数解释: 桶上传请求带宽限制,单位:Byte/s。 约束限制:
取值范围: 0-9223372036854775807 默认取值: 不涉及 |
| Total | 否 | Integer | 参数解释: 桶请求总带宽限制,单位:Byte/s。 约束限制:
取值范围: 0-9223372036854775807 默认取值: 不涉及 |
响应消息样式
HTTP/1.1 status_code Server: OBS x-obs-request-id: request id x-obs-id-2: id Date: date Content-Length: length
响应头 (Response Headers)
该请求的响应消息使用公共响应头,具体请参考表1。
响应体 (Response Body)
本接口的响应消息中不携带响应体。
错误响应消息
无特殊错误,所有错误已经包含在错误码概述中。
请求示例1:配置桶总Qos
配置桶总QoS:桶请求总Qps限制为2000,桶请求总带宽限制为1024000。
PUT /?x-obs-qosInfo HTTP/1.1
User-Agent: curl/7.29.0
Host: bucketname.obs.cn-north-4.myhuaweicloud.com
Accept: */*
Date: Wed, 21 May 2025 08:22:54 +0000
Authorization: OBS UDSIAMSTUBTEST000254:ydH8ffpcbS6YpeOMcEZfn0wE90c=
Content-Type: application/xml
Content-Length: 628
<?xml version="1.0" encoding="UTF-8"?>
<PutBucketQoSRequestBody>
<QoSConfiguration>
<QoSRule>
<NetworkType>total</NetworkType>
<ConcurrentRequestLimit>2000</ConcurrentRequestLimit>
<QpsLimit>
<Get>1500</Get>
<PutPostDelete>1000</PutPostDelete>
</QpsLimit>
<BpsLimit>
<Get>512000</Get>
<PutPost>512000</PutPost>
</BpsLimit>
</QoSRule>
</QoSConfiguration>
</PutBucketQoSRequestBody> 响应示例1
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 00000196F1F037525306DC088DF06BD5 x-obs-id-2: 36AAAQAAEAABSAAgAAEAABAAAQAAEAABAAAaI=AAAAAAAAAAAAAAAAAAAAAAAAAA Date: Wed, 21 May 2025 08:22:54 GMT Content-Length: 0
请求示例2:配置桶总+公网带宽QoS
配置桶公网QoS+内网QoS:桶公网/内网下载请求Qps限制为1000,桶公网/内网下载请求带宽限制为512000。
PUT /?x-obs-qosInfo HTTP/1.1
User-Agent: curl/7.29.0
Host: bucketname.obs.cn-north-4.myhuaweicloud.com
Accept: */*
Date: Wed, 21 May 2025 08:40:18 +0000
Authorization: OBS UDSIAMSTUBTEST000254:ydH8ffpcbS6YpeOMcEZfn0wE90c=
Content-Type: application/xml
Content-Length: 1121
<?xml version="1.0" encoding="UTF-8"?>
<PutBucketQoSRequestBody>
<QoSConfiguration>
<QoSRule>
<NetworkType>extranet</NetworkType>
<BpsLimit>
<Get>512000</Get>
<PutPost>512000</PutPost>
</BpsLimit>
</QoSRule>
<QoSRule>
<NetworkType>total</NetworkType>
<ConcurrentRequestLimit>0</ConcurrentRequestLimit>
<QpsLimit>
<Get>1000</Get>
<PutPostDelete>0</PutPostDelete>
<List>1000</List>
</QpsLimit>
<BpsLimit>
<Get>1024000</Get>
<PutPost>1024000</PutPost>
</BpsLimit>
</QoSRule>
</QoSConfiguration>
</PutBucketQoSRequestBody> 响应示例2
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 00000196F20026245306A7D73C891518 x-obs-id-2: 36AAAQAAEAABSAAgAAEAABAAAQAAEAABAAAaI=AAAAAAAAAAAAAAAAAAAAAAAAAA Date: Wed, 21 May 2025 08:40:18 GMT Content-Length: 0