对象存储 OSS设置生命周期规则
详细解答可以参考官方帮助文档通过oss_put_bucket_lifecycle接口,可以实现设置生命周期规则:
lifecycle的配置规则由一段xml表示。
delete obsoleted files
obsoleted/
Enabled
3
各字段解释:
ID字段是用来唯一表示本条Rule(各个ID之间不能由包含关系,比如abc和abcd这样的)。
Prefix指定对bucket下的符合特定前缀的文件使用规则。
Status指定本条规则的状态,只有Enabled和Disabled,分别表示启用规则和禁用规则。
Expiration节点里面的Days表示大于文件最后修改时间指定的天数就删除文件,Date则表示到指定的绝对时间之后就删除文件(绝对时间服从ISO8601的格式)。
可以通过下面的代码,设置上述lifecycle规则。
aos_pool_t *p;
oss_request_options_t *options;
aos_status_t *s;
aos_table_t *resp_headers;
char *bucket_name = '';
aos_string_t bucket;
aos_list_t lifecycle_rule_list;
oss_lifecycle_rule_content_t *rule_content;
char *rule_name = 'rule_name';
aos_pool_create(&p, NULL);
/* 创建并初始化options */
options = oss_request_options_create(p);
init_options(options);
/* 创建生命周期规则并设置给存储空间 */
aos_str_set(&bucket, bucket_name);
aos_list_init(&lifecycle_rule_list);
rule_content = oss_create_lifecycle_rule_content(p);
aos_str_set(&rule_content->id, rule_name);
aos_str_set(&rule_content->prefix, 'obsoleted');
aos_str_set(&rule_content->status, 'Enabled');
rule_content->days = 3;
aos_list_add_tail(&rule_content->node, &lifecycle_rule_list);
s = oss_put_bucket_lifecycle(options, &bucket, &lifecycle_rule_list, &resp_headers);
if (aos_status_is_ok(s)) {
printf('put bucket lifecycle succeeded\n');
} else {
printf('put bucket lifecycle failed\n');
}
aos_pool_destroy(p);
赞0
踩1