有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

简介

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