存储桶操作

最后更新时间:2020-03-17 11:30:36

    简介

    本文档提供关于存储桶的基本操作和访问控制列表(ACL)的相关 API 概览以及 SDK 示例代码。

    基本操作

    API 操作名 操作描述
    GET Service 查询存储桶列表 查询指定账号下所有的存储桶列表
    PUT Bucket 创建存储桶 在指定账号下创建一个存储桶
    HEAD Bucket 检索存储桶及其权限 检索存储桶是否存在且是否有权限访问
    DELETE Bucket 删除存储桶 删除指定账号下的空存储桶

    访问控制列表

    API 操作名 操作描述
    PUT Bucket acl 设置存储桶 ACL 设置存储桶的 ACL 配置
    GET Bucket acl 查询存储桶 ACL 查询存储桶的 ACL 配置

    基本操作

    查询存储桶列表

    功能说明

    查询指定账号下所有的存储桶列表。

    方法原型

    func (s *ServiceService) Get(ctx context.Context) (*ServiceGetResult, *Response, error)

    请求示例

    _, _, err := client.Service.Get(context.Background())
    if err != nil {
        panic(err)
    }

    返回结果说明

    通过 GetServiceResult 返回请求结果。

    type ServiceGetResult struct {
        Owner   *Owner  
        Buckets []Bucket 
    }
    type Owner struct {
        ID          string 
        DisplayName string                                              
    }
    type Bucket struct {
        Name       string
        Region     string
        CreationDate string                                               
    } 
    参数名称 参数描述 类型
    ID Bucket 所有者的 ID string
    DisplayName Bucket 所有者的名字信息 string
    Name Bucket 的名称 string
    Region Bucket 所在地域 string
    CreationDate Bucket 创建时间。ISO8601 格式,例如 2016-11-09T08:46:32.000Z string

    创建存储桶

    功能说明

    在指定账号下创建一个存储桶。

    方法原型

    func (s *BucketService) Put(ctx context.Context, opt *BucketPutOptions) (*Response, error)

    请求示例

    opt := &cos.BucketPutOptions{
        XCosACL: "private",
    }
    _, err := client.Bucket.Put(context.Background(), opt)
    if err != nil {
        panic(err)
    }

    参数说明

    type BucketPutOptions struct {
        XCosACL              string 
        XCosGrantRead        string  
        XCosGrantWrite       string  
        XCosGrantFullControl string 
    }
    参数名称 参数描述 类型 必填
    XCosACL 设置 Bucket 的 ACL,如 private,public-read,public-read-write string
    XCosGrantFullControl 赋予指定账户对 Bucket 的读写权限。格式为id=" ",id=" "。当需要给子账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}",当需要给主账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}"。例如id="qcs::cam::uin/100000000001:uin/100000000011",id="qcs::cam::uin/100000000001:uin/100000000001" string
    XCosGrantRead 赋予指定账户对 Bucket 的读权限。格式为id=" ",id=" "。当需要给子账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}",当需要给主账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}"。例如id="qcs::cam::uin/100000000001:uin/100000000011",id="qcs::cam::uin/100000000001:uin/100000000001" string
    XCosGrantWrite 赋予指定账户对 Bucket 的写权限。格式为id=" ",id=" "。当需要给子账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}",当需要给主账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}"。例如id="qcs::cam::uin/100000000001:uin/100000000011",id="qcs::cam::uin/100000000001:uin/100000000001" string

    检索存储桶及其权限

    功能说明

    检索存储桶是否存在且是否有权限访问。

    方法原型

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

    请求示例

    _, err := client.Bucket.Head(context.Background())
    if err != nil {
        panic(err)
    }

    删除存储桶

    功能说明

    删除指定账号下的空存储桶。

    方法原型

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

    请求示例

    _, err := client.Bucket.Delete(context.Background())
    if err != nil {
        panic(err)
    }

    访问控制列表

    设置存储桶 ACL

    功能说明

    设置指定存储桶访问权限控制列表(PUT Bucket acl)。

    方法原型

    func (s *BucketService) PutACL(ctx context.Context, opt *BucketPutACLOptions) (*Response, error)

    请求示例

    // 1. 通过请求头设置 Bucket ACL
    opt := &cos.BucketPutACLOptions{
        Header: &cos.ACLHeaderOptions{
            //private,public-read,public-read-write
            XCosACL: "private",
        },
    }
    _, err := client.Bucket.PutACL(context.Background(), opt)
    if err != nil {
        panic(err)
    }
    
    // 2. 通过请求体设置 Bucket ACL
    opt = &cos.BucketPutACLOptions{
        Body: &cos.ACLXml{
            Owner: &cos.Owner{
                ID: "qcs::cam::uin/100000000001:uin/100000000001",
            },
            AccessControlList: []cos.ACLGrant{
                {
                    Grantee: &cos.ACLGrantee{
                        // Type 备选项 "Group"、"CanonicalUser"
                        Type: "RootAccount",
                        ID:   "qcs::cam::uin/100000760461:uin/100000760461",
                    },
                    // Permission 备选项 "WRITE"、"FULL_CONTROL"
                    Permission: "FULL_CONTROL",
                },
            },
        },
    }
    _, err = client.Bucket.PutACL(context.Background(), opt)
    if err != nil {
        panic(err)
    }

    参数说明

    type ACLHeaderOptions struct {
        XCosACL              string 
        XCosGrantRead        string 
        XCosGrantWrite       string 
        XCosGrantFullControl string 
    }
    参数名称 参数描述 类型 必填
    XCosACL 设置 Bucket 的 ACL,如 private,public-read,public-read-write string
    XCosGrantFullControl 赋予指定账户对 Bucket 的读写权限。格式为id=" ",id=" "。当需要给子账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}",当需要给主账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}"。例如id="qcs::cam::uin/100000000001:uin/100000000011",id="qcs::cam::uin/100000000001:uin/100000000001" string
    XCosGrantRead 赋予指定账户对 Bucket 的读权限。格式为id=" ",id=" "。当需要给子账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}",当需要给主账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}"。例如id="qcs::cam::uin/100000000001:uin/100000000011",id="qcs::cam::uin/100000000001:uin/100000000001" string
    XCosGrantWrite 赋予指定账户对 Bucket 的写权限。格式为id=" ",id=" "。当需要给子账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}",当需要给主账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}"。例如id="qcs::cam::uin/100000000001:uin/100000000011",id="qcs::cam::uin/100000000001:uin/100000000001" string
    ACLXML 赋予指定账户对 Bucket 的访问权限,具体格式见 GET Bucket acl 返回结果说明 struct

    查询存储桶 ACL

    功能说明

    查询指定存储桶的访问权限控制列表(GET Bucket acl)。

    方法原型

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

    请求示例

    _, _, err := client.Bucket.GetACL(context.Background())
    if err != nil {
        panic(err)
    }

    返回结果说明

    通过 GetBucketACLResult 返回请求结果。

    type ACLXml struct {
        Owner             *Owner
        AccessControlList []ACLGrant 
    }
    type Owner struct { 
        ID          string 
        DisplayName string
    }
    type ACLGrant struct {
        Grantee    *ACLGrantee
        Permission string
    }
    type ACLGrantee struct {
        Type        string 
        ID          string 
        DisplayName string
        UIN         string 
    }
    参数名称 参数描述 类型
    Owner Bucket 拥有者的信息,包括 DisplayName 和 ID struct
    AccessControlList Bucket 权限授予者的信息,包括 Grantee和 Permission struct
    Grantee 权限授予者的信息,包括 DisplayName,Type,ID 和 UIN struct
    Type 权限授予者的类型,类型为 CanonicalUser 或者 Group string
    ID Type 为 CanonicalUser 时,对应权限授予者的 ID string
    DisplayName 权限授予者的名字 string
    UIN Type 为 Group 时,对应权限授予者的 UIN string
    Permission 授予者所拥有的 Bucket 的权限,可选值有 FULL_CONTROL,WRITE,READ,分别对应读写权限、写权限、读权限 string

    Was this page helpful?

    本页内容是否解决了您的问题?

    • 完全没帮助
    • 文档较差
    • 文档一般
    • 文档不错
    • 文档很好
    反馈
    帮助