生命周期

最后更新时间:2021-01-05 16:04:01

    简介

    本文档提供关于生命周期的 API 概览以及 SDK 示例代码。

    API 操作名 操作描述
    PUT Bucket lifecycle 设置生命周期 设置存储桶生命周期管理的配置
    GET Bucket lifecycle 查询生命周期 查询存储桶生命周期管理的配置
    DELETE Bucket lifecycle 删除生命周期 删除存储桶生命周期管理的配置

    设置生命周期

    功能说明

    设置指定存储桶的生命周期配置信息(PUT Bucket lifecycle)。

    方法原型

    CosResult CosAPI::PutBucketLifecycle(const PutBucketLifecycleReq& request, PutBucketLifecycleResp* response)

    请求示例

    qcloud_cos::CosConfig config("./config.json");
    qcloud_cos::CosAPI cos(config);
    std::string bucket_name = "examplebucket-1250000000";
    qcloud_cos::PutBucketLifecycleReq req(bucket_name);
    qcloud_cos::PutBucketLifecycleResp resp;
    
    qcloud_cos::LifecycleRule rule;
    rule.SetIsEnable(true);  // 指明规则是否启用,枚举值:Enabled,Disabled    
    rule.SetId("lifecycle_rule00");  // 用于唯一地标识规则,长度不能超过255个字符
    
    qcloud_cos::LifecycleFilter filter;
    filter.SetPrefix("test");
    rule.SetFilter(filter);  // 指定规则所适用的前缀。匹配前缀的对象受该规则影响,Prefix最多只能有一个
    
    qcloud_cos::LifecycleTransition transition;  // 规则转换属性
    transition.SetDays(30);
    transition.SetStorageClass("Standard_IA");
    rule.AddTransition(transition);
    req.AddRule(rule);
    
    qcloud_cos::CosResult result = cos.GetBucketWebsite(req, &resp);
    
    if (result.IsSucc()) {
        // 请求成功
    } else {
        // 请求失败,可以调用 CosResult 的成员函数输出错误信息,例如 requestID 等
    } 

    参数说明

    参数 参数描述 类型 是否必填
    req PutBucketLifecycle 操作的请求 PutBucketLifecycleReq
    resp PutBucketLifecycle 操作的响应 PutBucketLifecycleResp

    PutBucketLifecycleReq 提供了如下方法设置生命周期规则:

    void AddRule(const LifecycleRule& rule);
    void SetRule(const std::vector<LifecycleRule>& rules);

    说明:

    LifecycleRule,LifecycleFilter,LifecycleTransition,LifecycleExpiration,LifecycleNonCurrTransition,LifecycleNonCurrExpiration,AbortIncompleteMultipartUpload 等类的定义,请参考 SDK 头文件 include/cos_defines.h

    查询生命周期

    功能说明

    查询存储桶的生命周期管理配置(GET Bucket lifecycle)。

    方法原型

    CosResult CosAPI::GetBucketLifecycle(const GetBucketLifecycleReq& request, GetBucketLifecycleResp* response);

    请求示例

    qcloud_cos::CosConfig config("./config.json");
    qcloud_cos::CosAPI cos(config);
    std::string bucket_name = "examplebucket-1250000000";
    qcloud_cos::GetBucketLifecycleReq req(bucket_name);
    qcloud_cos::GetBucketLifecycleResp resp;
    
    qcloud_cos::CosResult result = cos.GetBucketLifecycle(req, &resp);
    
    if (result.IsSucc()) {
        // 请求成功,通过resp获取生命周期规则
    } else {
        // 请求失败,可以调用 CosResult 的成员函数输出错误信息,例如 requestID 等
    } 

    参数说明

    参数 参数描述 类型 是否必填
    req GetBucketLifecycle 操作的请求 GetBucketLifecycleReq
    resp GetBucketLifecycle 操作的响应 GetBucketLifecycleResp

    GetBucketLifecycleResp 提供如下方法获取生命周期规则:

    std::vector<LifecycleRule> GetRules() const;

    删除生命周期

    功能说明

    删除存储桶生命周期管理的配置(DELETE Bucket lifecycle)。

    方法原型

    CosResult CosAPI::DeleteBucketLifecycle(const DeleteBucketLifecycleReq& request, DeleteBucketLifecycleResp* response);

    请求示例

    qcloud_cos::CosConfig config("./config.json");
    qcloud_cos::CosAPI cos(config);
    std::string bucket_name = "examplebucket-1250000000";
    qcloud_cos::DeleteBucketLifecycleReq req(bucket_name);
    qcloud_cos::DeleteBucketLifecycleResp resp;
    
    qcloud_cos::CosResult result = cos.DeleteBucketLifecycle(req, &resp);
    
    if (result.IsSucc()) {
        // 请求成功
    } else {
        // 请求失败,可以调用 CosResult 的成员函数输出错误信息,例如 requestID 等
    } 

    参数说明

    参数 参数描述 类型 是否必填
    req DeletBucketLifecycle 操作的请求 DelettBucketLifecycleReq
    resp DeletBucketLifecycle 操作的响应 DeletBucketLifecycleResp