tencent cloud

文档反馈

生命周期

最后更新时间:2024-01-05 17:20:37

    简介

    本文档提供关于生命周期的 API 概览以及 SDK 示例代码。
    API
    操作名
    操作描述
    设置生命周期
    设置存储桶的生命周期管理的配置
    查询生命周期
    查询存储桶生命周期管理的配置
    删除生命周期
    删除存储桶生命周期管理的配置

    设置生命周期

    功能说明

    设置指定存储桶的生命周期配置信息(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.tencentcloud.com/cos5/bucket
    // 替换为用户的 region,存储桶 region 可以在 COS 控制台“存储桶概览”查看 https://console.tencentcloud.com/ ,关于地域的详情见 https://www.tencentcloud.com/document/product/436/6224?from_cn_redirect=1 。
    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.tencentcloud.com/cam/capi
    SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1
    // 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.tencentcloud.com/cam/capi
    SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1
    },
    })
    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,MAZ_STANDARD_IA,INTELLIGENT_TIERING,MAZ_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.tencentcloud.com/cos5/bucket
    // 替换为用户的 region,存储桶 region 可以在 COS 控制台“存储桶概览”查看 https://console.tencentcloud.com/ ,关于地域的详情见 https://www.tencentcloud.com/document/product/436/6224?from_cn_redirect=1 。
    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.tencentcloud.com/cam/capi
    SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1
    // 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.tencentcloud.com/cam/capi
    SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1
    },
    })
    _, _, 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.tencentcloud.com/cos5/bucket
    // 替换为用户的 region,存储桶 region 可以在 COS 控制台“存储桶概览”查看 https://console.tencentcloud.com/ ,关于地域的详情见 https://www.tencentcloud.com/document/product/436/6224?from_cn_redirect=1 。
    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.tencentcloud.com/cam/capi
    SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1
    // 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.tencentcloud.com/cam/capi
    SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1
    },
    })
    _, err := client.Bucket.DeleteLifecycle(context.Background())
    if err != nil {
    panic(err)
    }
    }
    
    联系我们

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

    技术支持

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

    7x24 电话支持