tencent cloud

文档反馈

生命周期

最后更新时间:2022-01-24 12:21:36

    简介

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

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

    设置生命周期

    功能说明

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

    方法原型

    func (s *BucketService) PutLifecycle(ctx context.Context, opt *BucketPutLifecycleOptions) (*Response, error)
    

    请求示例

    package main
    import (
       "context"
       "github.com/tencentyun/cos-go-sdk-v5"
       "net/http"
       "net/url"
       "os"
    )
    func main() {
       // 存储桶名称,由bucketname-appid 组成,appid必须填入,可以在COS控制台查看存储桶名称。 https://console.intl.cloud.tencent.com/cos5/bucket
       // 替换为用户的 region,存储桶region可以在COS控制台“存储桶概览”查看 https://console.intl.cloud.tencent.com/ ,关于地域的详情见 https://intl.cloud.tencent.com/document/product/436/6224 。
       u, _ := url.Parse("https://examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com")
       b := &cos.BaseURL{BucketURL: u}
       client := cos.NewClient(b, &http.Client{
           Transport: &cos.AuthorizationTransport{
               // 通过环境变量获取密钥
               // 环境变量 SECRETID 表示用户的 SecretId,登录访问管理控制台查看密钥,https://console.intl.cloud.tencent.com/cam/capi
               SecretID: os.Getenv("SECRETID"),
               // 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.intl.cloud.tencent.com/cam/capi
               SecretKey: os.Getenv("SECRETKEY"),
           },
       })
       lc := &cos.BucketPutLifecycleOptions{
           Rules: []cos.BucketLifecycleRule{
               {
                   ID:     "1234",
                   Filter: &cos.BucketLifecycleFilter{Prefix: "test"},
                   Status: "Enabled",
                   Transition: []cos.BucketLifecycleTransition{
                       {
                           Days:         10,
                           StorageClass: "Standard",
                       },
                   },
               },
               {
                   ID:     "123422",
                   Filter: &cos.BucketLifecycleFilter{Prefix: "gg"},
                   Status: "Disabled",
                   Expiration: &cos.BucketLifecycleExpiration{
                       Days: 10,
                   },
               },
           },
       }
       _, err := client.Bucket.PutLifecycle(context.Background(), lc)
       if err != nil {
           panic(err)
       }
    }
    

    参数说明

    type BucketPutLifecycleOptions struct {
       XMLName xml.Name
       Rules   []BucketLifecycleRule
    }
    type BucketLifecycleRule struct {
       ID                             string
       Status                         string
       Filter                         *BucketLifecycleFilter
       Transition                     []BucketLifecycleTransition
       Expiration                     *BucketLifecycleExpiration
       AbortIncompleteMultipartUpload *BucketLifecycleAbortIncompleteMultipartUpload
       NoncurrentVersionTransition    []BucketLifecycleNoncurrentVersion
       NoncurrentVersionExpiration    *BucketLifecycleNoncurrentVersion
    }
    type BucketLifecycleFilter struct {
       Prefix string
       Tag    *BucketTaggingTag
       And    *BucketLifecycleAndOperator
    }
    type BucketLifecycleTransition struct {
    Date         string 
    Days         int    
    StorageClass string
    }
    type BucketLifecycleExpiration struct {
       Date                      string
       Days                      int
       ExpiredObjectDeleteMarker bool
    }
    type BucketLifecycleNoncurrentVersion struct {
       NoncurrentDays int
       StorageClass   string
    }
    type BucketLifecycleAbortIncompleteMultipartUpload struct {
    DaysAfterInitiation int 
    }
    
    参数名称 父节点 参数描述 类型 是否必选
    LifecycleConfiguration 生命周期配置 Container
    Rule LifecycleConfiguration 规则描述 Container
    ID LifecycleConfiguration.Rule 用于唯一地标识规则,长度不能超过255个字符 String
    Filter LifecycleConfiguration.Rule Filter 用于描述规则影响的 Object 集合 Container
    And LifecycleConfiguration.Rule .Filter 对象筛选器中的一个子集,仅当需要指定多种筛选规则时才需要 此元素,例如:同时指定 Prefix 和 Tag 筛选,或同时指定多个 Tag 筛选。 Container
    Prefix LifecycleConfiguration.Rule .Filter.And 指定规则所适用的前缀。匹配前缀的对象受该规则影响,Prefix 最多只能有一个 String
    Tag LifecycleConfiguration.Rule .Filter.And 标签集合,最多支持10个标签 Container
    Key LifecycleConfiguration.Rule .Filter.And.Tag 标签的 Key,长度不超过128字节,支持英文字母、数字、空格、加号、 减号、下划线、等号、点号、冒号、斜线 String
    Value LifecycleConfiguration.Rule .Filter.And.Tag 标签的 Value,长度不超过256字节, 支持英文字母、数字、空格、加号、 减号、下划线、等号、点号、冒号、斜线 String
    Status LifecycleConfiguration.Rule 指明规则是否启用,枚举值:Enabled,Disabled String
    Expiration LifecycleConfiguration.Rule 规则过期属性 Container
    Transition LifecycleConfiguration.Rule 规则转换属性,用于描述对象何时进行存储类型的转换和转换的存储类型 Container
    Days LifecycleConfiguration.Rule .Transition 或 Expiration 指明规则对应的动作在对象最后的修改日期过后多少天操作: 如果是 Transition,该字段有效值是非负整数 如果是 Expiration,该字段有效值为正整数,最大支持3650天 Integer
    Date LifecycleConfiguration.Rule .Transition 或 Expiration 指明规则对应的动作在何时操作,支持2007-12-01T12:00:00.000Z2007-12-01T00:00:00+08:00这两种格式 String
    ExpiredObjectDeleteMarker LifecycleConfiguration.Rule .Expiration 删除过期对象删除标记,枚举值 true,false String
    AbortIncompleteMultipartUpload LifecycleConfiguration.Rule 设置允许分片上传保持运行的最长时间 Container
    DaysAfterInitiation LifecycleConfiguration.Rule .AbortIncompleteMultipartUpload 指明分片上传开始后多少天内必须完成上传 Integer
    NoncurrentVersionExpiration LifecycleConfiguration.Rule 指明非当前版本对象何时过期 Container
    NoncurrentVersionTransition LifecycleConfiguration.Rule 指明非当前版本对象何时进行存储类型的转换和转换的存储类型 Container
    NoncurrentDays LifecycleConfiguration.Rule .NoncurrentVersionExpiration 或 NoncurrentVersionTransition 指明规则对应的动作在对象变成非当前版本多少天后执行 如果是 Transition,该字段有效值是非负整数 如果是 Expiration,该字段有效值为正整数,最大支持3650天 Integer
    StorageClass LifecycleConfiguration.Rule .Transition 或 NoncurrentVersionTransition 指定 Object 沉降后的存储类型,枚举值: STANDARD_IA,INTELLIGENT_TIERING,ARCHIVE,DEEP_ARCHIVE。关于存储类型的介绍,请参见 存储类型概述 String

    查询生命周期

    功能说明

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

    方法原型

    func (s *BucketService) GetLifecycle(ctx context.Context) (*BucketGetLifecycleResult, *Response, error)
    

    请求示例

    package main
    import (
       "context"
       "github.com/tencentyun/cos-go-sdk-v5"
       "net/http"
       "net/url"
       "os"
    )
    func main() {
       // 存储桶名称,由bucketname-appid 组成,appid必须填入,可以在COS控制台查看存储桶名称。 https://console.intl.cloud.tencent.com/cos5/bucket
       // 替换为用户的 region,存储桶region可以在COS控制台“存储桶概览”查看 https://console.intl.cloud.tencent.com/ ,关于地域的详情见 https://intl.cloud.tencent.com/document/product/436/6224 。
       u, _ := url.Parse("https://examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com")
       b := &cos.BaseURL{BucketURL: u}
       client := cos.NewClient(b, &http.Client{
           Transport: &cos.AuthorizationTransport{
               // 通过环境变量获取密钥
               // 环境变量 SECRETID 表示用户的 SecretId,登录访问管理控制台查看密钥,https://console.intl.cloud.tencent.com/cam/capi
               SecretID: os.Getenv("SECRETID"),
               // 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.intl.cloud.tencent.com/cam/capi
               SecretKey: os.Getenv("SECRETKEY"),
           },
       })
       _, _, err := client.Bucket.GetLifecycle(context.Background())
       if err != nil {
           panic(err)
       }
    }
    

    返回结果说明

    通过 GetBucketLifecycleResult 返回请求结果。

    type BucketLifecycleRule struct {
    ID                             string
    Status                         string
    Filter                         *BucketLifecycleFilter
    Transition                     *BucketLifecycleTransition
    Expiration                     *BucketLifecycleExpiration
    AbortIncompleteMultipartUpload  *BucketLifecycleAbortIncompleteMultipartUpload 
    }
    type BucketLifecycleFilter struct {
    Prefix       string 
    }
    type BucketLifecycleTransition struct {
    Date         string 
    Days         int    
    StorageClass string
    }
    type BucketLifecycleExpiration struct {
    Date string 
    Days int    
    }
    type BucketLifecycleAbortIncompleteMultipartUpload struct {
    DaysAfterInitiation string 
    }
    
    参数名称 参数描述 类型 是否必填
    BucketLifecycleRule 设置对应的规则,包括 ID,Filter,Status,Expiration,Transition,AbortIncompleteMultipartUpload List
    ID 规则的唯一 ID String
    Status 设置 Rule 是否启用,可选值为 Enabled 或者 Disabled String
    Filter 用于描述规则影响的 Object 集合,如需设置 Bucket 中的所有 objects,请设置 Prefix 为空 Struct
    Transition 设置 Object 转换存储类型规则,可以指定天数 Days 或者指定日期 Date,Date 的格式必须是 GMT ISO 8601。StorageClass 可选 Standard_IA,Archive,可以同时设置多条此类规则 struct
    Expiration 设置 Object 过期规则,可以指定天数 Days 或者指定日期 Date,Date 的格式必须是 GMT ISO 8601 Struct
    AbortIncompleteMultipartUpload 指明分块上传开始后多少天内必须完成上传 Struct

    删除生命周期

    功能说明

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

    方法原型

    func (s *BucketService) DeleteLifecycle(ctx context.Context) (*Response, error)
    

    请求示例

    package main
    import (
       "context"
       "github.com/tencentyun/cos-go-sdk-v5"
       "net/http"
       "net/url"
       "os"
    )
    func main() {
       // 存储桶名称,由bucketname-appid 组成,appid必须填入,可以在COS控制台查看存储桶名称。 https://console.intl.cloud.tencent.com/cos5/bucket
       // 替换为用户的 region,存储桶region可以在COS控制台“存储桶概览”查看 https://console.intl.cloud.tencent.com/ ,关于地域的详情见 https://intl.cloud.tencent.com/document/product/436/6224 。
       u, _ := url.Parse("https://examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com")
       b := &cos.BaseURL{BucketURL: u}
       client := cos.NewClient(b, &http.Client{
           Transport: &cos.AuthorizationTransport{
               // 通过环境变量获取密钥
               // 环境变量 SECRETID 表示用户的 SecretId,登录访问管理控制台查看密钥,https://console.intl.cloud.tencent.com/cam/capi
               SecretID: os.Getenv("SECRETID"),
               // 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.intl.cloud.tencent.com/cam/capi
               SecretKey: os.Getenv("SECRETKEY"),
           },
       })
       _, err := client.Bucket.DeleteLifecycle(context.Background())
       if err != nil {
           panic(err)
       }
    }
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持