约束与限制
- 生命周期规则目前仅支持根据前缀进行匹配,不支持通配符匹配、后缀匹配以及正则匹配。
- 单个桶的生命周期规则条数没有限制,但单个桶中所有生命周期规则的XML描述总大小不能超过20KB。
- 您最多可以在一个并行文件系统下配置20条生命周期管理规则,超过20条将提示不支持。
- 生命周期为覆盖语义,修改桶的生命周期规则,您需要在原有规则的基础上添加规则。例如,某个Bucket已配置了生命周期规则Rule1,您需要在Rule1基础上继续追加生命周期规则Rule2,您需要执行以下操作。
- 调用GetBucketLifecycle接口获取当前生命周期规则配置Rule1。
- 在Rule1基础上叠加Rule2。
- 调用PutBucketLifecycle接口更新生命周期规则为Rule1+Rule2。
如果您使用控制台配置生命周期规则,无需先获取再添加,可直接使用在界面上进行追加操作,系统会在后台自动为您执行获取后追加的操作。详情可参见使用OBS控制台配置生命周期。
配置生命周期规则操作步骤
OBS支持使用控制台、API、OBS SDK设置生命周期规则。
使用OBS控制台
- 在OBS管理控制台左侧导航栏选择“对象存储”。
- 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
- 在左侧导航栏,单击“概览”,进入“概览”页面。
- 在“基础配置”区域下,单击“生命周期规则”卡片,系统跳转至“生命周期规则”界面。
或您可以直接在左侧导航栏单击“基础配置 > 生命周期规则”,进入“生命周期规则”界面。
- 单击“创建”,系统弹出如图1所示对话框。
- 配置生命周期管理规则。
基本信息:
- “状态”:选中“启用”,启用本条生命周期规则。
- “规则名称”:用于识别不同的生命周期配置,其长度需不超过255字符。
- “前缀”:可选。
- 填写前缀:满足该前缀的对象将受生命周期规则管理,输入的对象前缀不能包括\:*?"<>|特殊字符,不能以/开头,不能两个/相邻。
- 未填写前缀:桶内所有对象都将受生命周期规则管理。
当前版本或历史版本:
- “当前版本”与“历史版本”是针对“多版本控制”而言的。如果开启了“多版本控制”功能,同名的对象上传到同一路径下时,则会产生不同的版本号。最新版本的对象称之为“当前版本”,历史时间上传的对象称之为“历史版本”。当前版本和历史版本的详细介绍请参见多版本控制。
- “当前版本”与“历史版本”至少配置一个,也可以两个版本同时配置。
- 转换为低频访问存储天数:指定在对象最后一次更新后多少天,受规则影响的对象将转换为低频访问存储。
- 转换为归档存储天数:指定在对象最后一次更新后多少天,受规则影响的对象将转换为归档存储。如果同时设置转换为低频访问存储和转换为归档存储,则转换为归档存储的时间要比转换为低频访问存储的时间长。如果单独设置转换为归档存储,则没有时间限制。
- 转换为深度归档存储天数:指定在对象最后一次更新后多少天,受规则影响的对象将转换为深度归档存储。如果同时设置转换为低频访问存储和转换为深度归档存储,则转换为深度归档存储的时间要比转换为低频访问存储的时间长。如果同时设置转换为归档存储和转换为深度归档存储,则转换为深度归档存储的时间要比转换为归档存储的时间长。如果单独设置转换为深度归档存储,则没有时间限制。
- 对象过期删除天数:指定在对象最后一次更新后多少天,受规则影响的对象将过期并自动被OBS删除。过期时间必须大于转换转换时间的最大值,且必须为整数。
- 碎片过期删除天数:指定桶内碎片在产生后多少天自动删除。
例如,您于2015年1月7日在
OBS中存储了以下几个文件:
- log/test1.log
- log/test2.log
- doc/example.doc
- doc/good.txt
您于2015年1月10日在
OBS中存储了以下几个文件:
- log/clientlog.log
- log/serverlog.log
- doc/work.doc
- doc/travel.txt
如果您在2015年1月10日设置前缀为“log”的对象,过期删除的时间设置为一天,可能出现如下情况:
- 1月7日上传的两个对象“log/test1.log”和“log/test2.log”,会在最近一次系统自动扫描后被删除,可能在1月10日当天,也可能在1月11日,这取决于系统的下一次扫描在何时进行。
- 1月10日上传的两个对象“log/clientlog.log”和“log/serverlog.log”,每下一次系统扫描均会判断距上一次对象更新是否已满一天。如果已满一天,则在本次扫描时删除;如果未满一天,则会等到下次扫描再判断,直到满一天时删除,一般可能在1月11日或1月12日删除。
如果您在某天设置前缀为“log”的对象,转换为低频访问存储的时间设置为30天,转换为归档存储的时间设置为60天,过期删除的时间设置为100天,OBS将会在“log/clientlog.log”、“log/serverlog.log”、“log/test1.log”和“log/test2.log”这四个对象上传满30天后转换为低频访问存储,满60天后转换为归档存储,满100天后自动删除。
对象上传后,系统会将下一个UTC零点作为对象存储的起始时间开始计算生命周期。生命周期规则执行常规情况下最长耗时24小时。因此,存储类别的转换以及过期被删除可能会存在延时,且一般不会超过48小时。配置生命周期规则后,如果期间修改了生命周期配置,会重新计算生效时间。
- 单击“确定”,完成生命周期规则配置。
为单个对象设置对象生命周期
如果您的使用场景需要针对单个对象设置删除时间,可以在对象上传时,为对象设置过期删除时间。如果开启了多版本,可以在上传时为每一个对象版本设置过期删除时间。对象生命周期只能作用于对象版本,不作用于删除标记和碎片。
与在桶上设置生命周期不同,对象生命周期只能作用于当前对象,且只能设置定时删除,不能设置存储类别转换。如果桶生命周期与对象生命周期冲突,则优先执行对象生命周期。
OBS支持使用API、SDK设置对象生命周期,控制台、OBS Browser+、obsutil暂不支持:
使用SDK
OBS SDK多个上传对象接口支持设置过期删除参数(expires)请求参数: