在线解压
OBS支持ZIP包上传后自动解压并存放在指定目录。
当您需要一次性上传大量的小文件时,可以将所有文件打包成ZIP包,上传之后压缩包可以自动解压,省时省力。OBS批量上传文件时有一些限制,参见OBS批量上传文件。
成功创建在线解压策略后,您上传到OBS的ZIP包如果能匹配解压策略,则会自动解压。创建策略前已存在的ZIP包不受影响。
您可以新建在线解压策略,也可以从其他桶复制已有在线解压策略。
前提条件
使用在线解压特性的账号或子账号应具备Tenant administrator的用户角色。
约束与限制
权限限制:
- 需要使用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用户、企业联邦用户的关系和身份提供商概述。
注意事项
- 建议设置精准的前缀,同一个桶下的不同触发条件不能包含或重叠,触发条件指策略配置项中的事件、前缀以及后缀。
例如,同一个桶下的两个解压策略event-0001和event-0002,假设event-0001的前缀配置为aa,则event-0002的前缀不可配置为aaaa,因为两者具有包含关系。
- 当前缀置空时,解压策略将默认匹配该桶下的全部ZIP包,可能会触发循环执行。
例如,ZIP包“AA.zip”中包含ZIP包“BB.zip”。如果前缀置空,当"AA.zip"解压完成后,系统会继续对解压出的"BB.zip"进行解压。设置前缀可以规避该问题。
- 目标目录:ZIP包解压生成文件的存放目录,如果不设置,函数计算会将生成的文件存放到当前桶的主目录下。
- 如果ZIP包中包含非UTF-8或GB 2312编码的文件名或文件夹(文件目录)名,可能导致解压生成文件的文件名或文件目录名出现乱码、解压过程中断等情况,请使用UTF-8或GB 2312编码命名您的文件或文件目录。
- 上传归档存储的ZIP包,不会触发ZIP包解压,如果桶已开启归档数据直读功能,则可以触发ZIP包解压。上传深度归档存储的ZIP包,不会触发ZIP包解压。
- ZIP包解压处理单个压缩包的最长处理时间是10分钟,超过10分钟未完成会解压失败。
新建在线解压策略
OBS支持通过控制台、API方式新建在线解压策略,不支持通过SDK、OBS Browser+、obsutil方式新建在线解压策略。
复制在线解压策略
OBS支持通过控制台方式复制在线解压策略,不支持通过API、SDK、OBS Browser+、obsutil方式复制在线解压策略。
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
- 在左侧导航栏单击“数据处理>在线解压”,进入“在线解压”页面。
- 单击“复制”。
- 选择复制源,即在线解压策略所在的源桶。
- 从源桶复在线解压策略的操作为增量复制,不会删除当前桶已存在的在线解压策略,与已存在的在线解压策略冲突的策略不会复制。
- 源桶和目标桶的桶版本号都必须是3.0。
- 您可以按需移除不需要复制的在线解压策略。
- 单桶在线解压策略上限为10条,如果已有策略+复制策略的数量超过上限,将会复制失败,请先删除多余策略再进行复制。
图2 复制在线解压策略
- 单击“确定”,将源桶的在线解压策略复制到当前桶。