简介
本文档提供关于清单的 API 概览以及 SDK 示例代码。
API | 操作名 | 操作描述 |
设置清单任务 | 设置存储桶的清单任务 | |
查询清单任务 | 查询存储桶的清单任务 | |
查询所有清单 | 查询存储桶的所有清单任务 | |
删除清单任务 | 删除存储桶的清单任务 |
设置清单任务
功能说明
PUT Bucket inventory 用于在存储桶中创建清单任务。
方法原型
func (s *BucketService) PutInventory(ctx context.Context, id string, opt *BucketPutInventoryOptions) (*Response, error)
请求示例
package mainimport ("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/capiSecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140// 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capiSecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140},})id := "test_id"opt := &cos.BucketPutInventoryOptions{ID: id,// True or FalseIsEnabled: "True",IncludedObjectVersions: "All",Filter: &cos.BucketInventoryFilter{Prefix: "test",},OptionalFields: &cos.BucketInventoryOptionalFields{BucketInventoryFields: []string{"Size", "LastModifiedDate",},},Schedule: &cos.BucketInventorySchedule{// Weekly or DailyFrequency: "Daily",},Destination: &cos.BucketInventoryDestination{Bucket: "qcs::cos:ap-guangzhou::dest_bucket-1250000000",Format: "CSV",},}_, err := client.Bucket.PutInventory(context.Background(), id, opt)if err != nil {// ERROR}}
参数说明
type BucketInventoryFilter struct {Prefix string}type BucketInventoryOptionalFields struct {BucketInventoryFields []string}type BucketInventorySchedule struct {Frequency string}type BucketInventoryEncryption struct {SSECOS string}type BucketInventoryDestination struct {Bucket stringAccountId stringPrefix stringFormat stringEncryption *BucketInventoryEncryption}// BucketPutInventoryOptions ...type BucketPutInventoryOptions struct {XMLName xml.NameID stringIsEnabled stringIncludedObjectVersions stringFilter *BucketInventoryFilterOptionalFields *BucketInventoryOptionalFieldsSchedule *BucketInventoryScheduleDestination *BucketInventoryDestination}
参数名称 | 描述 | 类型 |
BucketPutInventoryOptions | 存储桶清单配置信息 | Struct |
ID | 清单的名称,与请求参数中的 ID 对应 | String |
IsEnabled | 清单是否启用的标识: 如果设置为 true,清单功能将生效 如果设置为 false,将不生成任何清单 | String |
IncludedObjectVersions | 是否在清单中包含对象版本: 如果设置为 All,清单中将会包含所有对象版本,并在清单中增加 VersionId,IsLatest,DeleteMarker 这几个字段 如果设置为 Current,则清单中不包含对象版本信息 | String |
Filter | 过滤器 | Struct |
Prefix | 需要分析的对象的前缀 | String |
OptionalFields | 设置清单结果中应包含的分析项目 | Struct |
BucketInventoryFields | 清单结果中可选包含的分析项目名称,可选字段包括:Size,LastModifiedDate,StorageClass,ETag,IsMultipartUploaded,ReplicationStatus | []String |
Schedule | 清单任务周期 | Struct |
Frequency | 清单任务周期,可选项为按日或者按周,枚举值:Daily、Weekly | String |
Destination | 描述存放清单结果的信息 | Struct |
Bucket | 清单分析结果的存储桶名 | String |
AccountId | 存储桶的所有者 ID,例如100000000001 | String |
Prefix | 清单分析结果的前缀 | String |
Format | 清单分析结果的文件形式,可选项为 CSV 格式 | String |
Encryption | 为清单结果提供服务端加密的选项 | Struct |
SSECOS | 使用 SSE-COS 加密 | String |
错误码说明
该请求可能会发生的一些常见的特殊错误如下:
错误码 | 描述 | 状态码 |
InvalidArgument | 不合法的参数值 | HTTP 400 Bad Request |
TooManyConfigurations | 清单数量已经达到1000条的上限 | HTTP 400 Bad Request |
AccessDenied | 未授权的访问。您可能不具备访问该存储桶的权限 | HTTP 403 Forbidden |
查询清单任务
功能说明
GET Bucket inventory 用于查询存储桶中用户的清单任务信息。
方法原型
func (s *BucketService) GetInventory(ctx context.Context, id string) (*BucketGetInventoryResult, *Response, error)
请求示例
package mainimport ("context""fmt""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/capiSecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140// 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capiSecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140},})v, _, err := client.Bucket.GetInventory(context.Background(), "test_id")if err != nil {// ERROR}fmt.Println(v)}
返回结果说明
type BucketGetInventoryResult BucketPutInventoryOptions
参数名称 | 描述 | 类型 |
BucketPutInventoryOptions | 存储桶清单配置信息 | Struct |
ID | 清单的名称,与请求参数中的 ID 对应 | String |
IsEnabled | 清单是否启用的标识: 如果设置为 true,清单功能将生效 如果设置为 false,将不生成任何清单 | String |
IncludedObjectVersions | 是否在清单中包含对象版本: 如果设置为 All,清单中将会包含所有对象版本,并在清单中增加 VersionId,IsLatest,DeleteMarker 这几个字段 如果设置为 Current,则清单中不包含对象版本信息 | String |
Filter | 过滤器 | Struct |
Prefix | 需要分析的对象的前缀 | String |
OptionalFields | 设置清单结果中应包含的分析项目 | Struct |
BucketInventoryFields | 清单结果中可选包含的分析项目名称,可选字段包括:Size,LastModifiedDate,StorageClass,ETag,IsMultipartUploaded,ReplicationStatus | []String |
Schedule | 清单任务周期 | Struct |
Frequency | 清单任务周期,可选项为按日或者按周,枚举值:Daily、Weekly | String |
Destination | 描述存放清单结果的信息 | Struct |
Bucket | 清单分析结果的存储桶名 | String |
AccountId | 存储桶的所有者 ID,例如100000000001 | String |
Prefix | 清单分析结果的前缀 | String |
Format | 清单分析结果的文件形式,可选项为 CSV 格式 | String |
Encryption | 为清单结果提供服务端加密的选项 | Struct |
SSECOS | 使用 SSE-COS 加密 | String |
查询所有清单
功能说明
List Bucket Inventory Configurations 用于请求返回一个存储桶中的所有清单任务。每一个存储桶中最多配置1000条清单任务。
方法原型
func (s *BucketService) ListInventoryConfigurations(ctx context.Context, token string) (*ListBucketInventoryConfigResult, *Response, error)
请求示例
package mainimport ("context""fmt""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/capiSecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140// 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capiSecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140},})v, _, err := client.Bucket.ListInventoryConfigurations(context.Background(), "")if err != nil {// ERROR}fmt.Println(v)}
返回结果说明
type BucketListInventoryConfiguartion BucketPutInventoryOptionstype ListBucketInventoryConfigResult struct {XMLName xml.NameInventoryConfigurations []BucketListInventoryConfiguartionIsTruncated boolContinuationToken stringNextContinuationToken string}
参数名称 | 描述 | 类型 |
ListBucketInventoryConfigResult | 存储桶所有清单配置信息 | Struct |
InventoryConfigurations | 清单配置信息 | Struct |
IsTruncated | 是否已列出所有清单任务信息的标识。如果已经展示完则为 false,否则为 true | Bool |
ContinuationToken | 当页清单列表的标识,可理解为页数。该标识与请求中的 continuation-token 参数对应 | String |
NextContinuationToken | 下一页清单列表的标识。如果该参数中有值,则可将该值作为 continuation-token 参数并发起 GET 请求以获取下一页清单任务信息 | String |
删除清单任务
功能说明
DELETE Bucket inventory 用于删除存储桶中指定的清单任务。
方法原型
func (s *BucketService) DeleteInventory(ctx context.Context, id string) (*Response, error)
请求示例
package mainimport ("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/capiSecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140// 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capiSecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140},})_, err := client.Bucket.DeleteInventory(context.Background(), "test_id")if err != nil {// ERROR}}
参数说明
参数名称 | 描述 | 类型 |
id | 清单的名称 | String |