控制台指南

最佳实践

开发者指南

数据湖存储

API 文档

SDK 文档

文档捉虫大赛火热进行中,好礼多多> HOT

简介

本文档提供关于清单的 API 概览以及 SDK 示例代码。

API 操作名 操作描述
PUT Bucket inventory 设置清单任务 设置存储桶的清单任务
GET Bucket inventory 查询清单任务 查询存储桶的清单任务
List Bucket Inventory Configurations 查询所有清单 查询存储桶的所有清单任务
DELETE Bucket inventory 删除清单任务 删除存储桶的清单任务

设置清单任务

功能说明

PUT Bucket inventory 用于在存储桶中创建清单任务。

方法原型

func (s *BucketService) PutInventory(ctx context.Context, id string, opt *BucketPutInventoryOptions) (*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
        },
    })
    opt := &cos.BucketPutInventoryOptions{
        ID: "test_id",
        // True or False
        IsEnabled:              "True",
        IncludedObjectVersions: "All",
        Filter: &cos.BucketInventoryFilter{
            Prefix: "test",
        },
        OptionalFields: &cos.BucketInventoryOptionalFields{
            BucketInventoryFields: []string{
                "Size", "LastModifiedDate",
            },
        },
        Schedule: &cos.BucketInventorySchedule{
            // Weekly or Daily
            Frequency: "Daily",
        },
        Destination: &cos.BucketInventoryDestination{
            Bucket: "dest_bucket-1250000000",
            Format: "CSV",
        },
    }
    _, err := client.Bucket.PutInventory(context.Background(), "test_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     string                     
    AccountId  string                     
    Prefix     string                    
    Format     string
    Encryption *BucketInventoryEncryption 
}
// BucketPutInventoryOptions ...
type BucketPutInventoryOptions struct {
    XMLName                xml.Name                     
    ID                     string                         
    IsEnabled              string                       
    IncludedObjectVersions string                      
    Filter                 *BucketInventoryFilter        
    OptionalFields         *BucketInventoryOptionalFields 
    Schedule               *BucketInventorySchedule      
    Destination            *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 main
    
    import (
        "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/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
            },
        })
        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 main
    
    import (
        "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/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
            },
        })
        v, _, err := client.Bucket.ListInventoryConfigurations(context.Background(), "")
        if err != nil {
            // ERROR
        }
        fmt.Println(v)
    }

    返回结果说明

    type BucketListInventoryConfiguartion BucketPutInventoryOptions
    
    type ListBucketInventoryConfigResult struct {
        XMLName                 xml.Name          
        InventoryConfigurations []BucketListInventoryConfiguartion 
        IsTruncated             bool   
        ContinuationToken       string    
        NextContinuationToken   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 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.DeleteInventory(context.Background(), "test_id")
        if err != nil {
            // ERROR
        }
    }

    参数说明

    参数名称 描述 类型
    id 清单的名称 String
    目录