设置在线解压策略-PutDecompressPolicy
功能介绍
OBS支持ZIP包上传后自动解压并存放在指定目录。桶设置了在线解压策略后,上传到该桶内的ZIP包如果匹配解压策略,ZIP包将会自动解压到指定目录里。本接口用于为指定桶配置ZIP文件解压策略。了解更多在线解压相关信息,请参见在线解压 。
接口约束
权限限制:
- 需要使用IAM的角色与策略授权功能,增加Tenant Administrator权限后才能设置、获取、删除在线解压策略。
- 在线解压源需使用IAM创建云服务委托,委托OBS获取桶内数据,上传数据到桶内。委托需要给OBS服务授予obs:object:PutObject、obs:object:GetObject、obs:object:AbortMultipartUpload权限。
包及文件大小限制:
- 单个ZIP包大小上限为1GB。
- 单个ZIP包内最多可包含65536个文件。
- ZIP包内,单个文件解压后最大为40GB。
时间限制:
- ZIP包解压任务最大时长为10分钟。
功能限制:
- ZIP包的后缀必须为zip。
- ZIP包名称中不可带有中文标点符号、特殊符号和特殊编码。
- 针对ZIP包嵌套的场景,在线解压策略的事件类型需设置为ObjectCreated:*或ObjectCreated:CompleteMultipartUpload。
- 目前不支持解压任务完成后给用户发送消息通知。
- 目前仅支持解压压缩算法为deflated的ZIP包,此处的压缩算法与WINRAR等软件提供的Store、Normal等压缩方法不等同。
- 解压路径加上压缩包解压出文件的文件名,总字符长度不可超过512,否则会导致解压失败。
- 目前不支持解压加密ZIP包。
- 不支持企业联邦用户使用在线解压功能,更多关于联邦用户的相关信息请参考华为云账号、华为账号、IAM用户、企业联邦用户的关系和身份提供商概述。
请求消息样式
PUT /?obscompresspolicy 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
URI参数(URI Parameters)
该请求消息中不使用消息参数。
请求头参数(Request headers)
该请求使用公共请求头,具体参见表3。
请求体参数(Request body)
| 名称 | 描述 | 是否必选 |
|---|---|---|
| rules | 策略规则数组。 类型:Container 取值范围:数组大小[1, 10] 说明: 同一个桶下的不同策略前缀不能重复和起始包含,委托建议使用同一个。 | 是 |
| 名称 | 描述 | 是否必选 |
|---|---|---|
| id | 解压策略名称。当前桶上配置的解压规则的唯一标识。 类型:String 取值范围:[1, 256],满足“^[a-zA-Z0-9_-]{1, 256}$”,即长度为1~256个字符。只能由大写或小写的英文字母、数字、下划线(_)和连字符(-)组成。例如:event_0001。 | 是 |
| project | 项目ID。 类型:String | 是 |
| agency | 委托名。客户通过委托赋予OBS服务查询用户桶内指定对象是否存在以及向用户桶内上传对象的权限。 类型:String | 是 |
| events | 触发事件类型。 类型:String 支持: ["ObjectCreated:*"] ["ObjectCreated:Put"] ["ObjectCreated:Post"] ["ObjectCreated:Copy"] ["ObjectCreated:CompleteMultipartUpload"] | 是 |
| prefix | 匹配规则前缀。 类型:String 取值范围:[0, 1023] | 否 |
| suffix | 匹配规则后缀。 类型:String 固定值:.zip | 是 |
| overwrite | 解压后同名文件的处理方式。 类型:Integer 取值范围:0:不覆盖跳过,1:不覆盖,以文件的CRC32值重命名,2:覆盖。 | 是 |
| decompresspath | 文件解压后存放的路径,不为空时必须以“/”结尾,且不能以“/”开头。 类型:String 取值范围:[0, 800] | 否 |
| policytype | 文件解压策略类型。 类型:String 固定值:decompress:执行解压操作 | 是 |
请保证解压策略名称、解压路径、IAM委托名称长度之和不超过800。
响应消息样式
HTTP/1.1 status Server: OBS Date: date Content-Length: length
响应头 (Response Headers)
该请求的响应消息使用公共响应头,具体请参考表1。
响应体 (Response Body)
该请求的响应消息中不带消息元素。
请求示例
PUT /?obscompresspolicy HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:sc2PM13Wlfcoc/YZLK0MwsI2Zpo=
Content-Type: application/json
Content-Length: 497
Date: Tue, 21 Jul 2020 15:38:30 GMT
{
"rules": [{
"id": "ruleid",
"project": "your project id",
"agency": "testagency",
"events": ["ObjectCreated:*"],
"prefix": "decompress",
"suffix": ".zip",
"overwrite": 0,
"decompresspath": "after-decompress/",
"policytype": "decompress"
}]
} 响应示例
HTTP/1.1 201 Created Server: OBS Date: Tue, 07 Jul 2020 07:29:13 GMT Content-Length: 0