tencent cloud

Feedback

Cross-Origin Resource Sharing

Last updated: 2024-02-02 15:51:37

    Overview

    This document provides an overview of APIs and SDK sample codes for cross-origin resource sharing (CORS).
    API
    Operation
    Description
    Setting CORS configuration
    Sets the CORS permissions of bucket
    Querying CORS configuration
    Queries the CORS configuration of a bucket
    Deleting CORS configuration
    Deletes the CORS configuration of a bucket

    Setting CORS Configuration

    Feature description

    This API is used to set the CORS configuration of a specified bucket.

    Method prototype

    func (s *BucketService) PutCORS(ctx context.Context, opt *BucketPutCORSOptions) (*Response, error)

    Sample request

    package main
    
    import (
    "context"
    "github.com/tencentyun/cos-go-sdk-v5"
    "net/http"
    "net/url"
    "os"
    )
    
    func main(){
    // Bucket name in the format of `BucketName-APPID` (`APPID` is required), which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket.
    // Replace it with your region, which can be viewed in the COS console at https://console.tencentcloud.com/. For more information about regions, visit https://www.tencentcloud.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{
    // Get the key from environment variables
    // Environment variable `SECRETID` refers to the user's `SecretId`, which can be viewed in the CAM console at https://console.tencentcloud.com/cam/capi.
    SecretID: os.Getenv("SECRETID"), // User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1.
    // Environment variable `SECRETKEY` refers to the user's `SecretKey`, which can be viewed in the CAM console at https://console.tencentcloud.com/cam/capi.
    SecretKey: os.Getenv("SECRETKEY"), // User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1.
    },
    })
    opt := &cos.BucketPutCORSOptions{
    Rules: []cos.BucketCORSRule{
    {
    AllowedOrigins: []string{"http://www.qq.com"},
    AllowedMethods: []string{"PUT", "GET"},
    AllowedHeaders: []string{"x-cos-meta-test", "x-cos-xx"},
    MaxAgeSeconds: 500,
    ExposeHeaders: []string{"x-cos-meta-test1"},
    },
    {
    ID: "1234",
    AllowedOrigins: []string{"http://www.baidu.com", "twitter.com"},
    AllowedMethods: []string{"PUT", "GET"},
    MaxAgeSeconds: 500,
    },
    },
    }
    _, err := client.Bucket.PutCORS(context.Background(), opt)
    if err != nil{
    panic(err)
    }
    }

    Field description

    type BucketCORSRule struct {
    ID string
    AllowedMethods []string
    AllowedOrigins []string
    AllowedHeaders []string
    MaxAgeSeconds int
    ExposeHeaders []string
    }
    Parameter
    Description
    Type
    Required
    BucketCORSRule
    CORS rules, including ID, MaxAgeSeconds, AllowedOrigin, AllowedMethod, AllowedHeader, and ExposeHeader
    struct
    Yes
    ID
    Rule ID
    string
    No
    AllowedMethods
    Allowed methods, including GET, PUT, HEAD, POST, and DELETE
    []string
    Yes
    AllowedOrigins
    Allowed access sources, such as "http://cloud.tencent.com". Asterisks (*) are supported.
    []string
    Yes
    AllowedHeaders
    Allowed custom HTTP request headers that can be used by requests. Asterisks (*) are supported.
    []string
    No
    MaxAgeSeconds
    Validity period of the OPTIONS request result
    int
    No
    ExposeHeaders
    Custom header information that can be received by the browser from the server
    []string
    No

    Querying CORS Configuration

    Feature description

    This API is used to query the CORS configuration of a bucket.

    Method prototype

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

    Sample request

    package main
    
    import (
    "context"
    "github.com/tencentyun/cos-go-sdk-v5"
    "net/http"
    "net/url"
    "os"
    )
    
    func main(){
    // Bucket name in the format of `BucketName-APPID` (`APPID` is required), which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket.
    // Replace it with your region, which can be viewed in the COS console at https://console.tencentcloud.com/. For more information about regions, visit https://www.tencentcloud.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{
    // Get the key from environment variables
    // Environment variable `SECRETID` refers to the user's `SecretId`, which can be viewed in the CAM console at https://console.tencentcloud.com/cam/capi.
    SecretID: os.Getenv("SECRETID"), // User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1.
    // Environment variable `SECRETKEY` refers to the user's `SecretKey`, which can be viewed in the CAM console at https://console.tencentcloud.com/cam/capi.
    SecretKey: os.Getenv("SECRETKEY"), // User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1.
    },
    })
    _, _, err := client.Bucket.GetCORS(context.Background())
    if err != nil{
    panic(err)
    }
    }

    Response description

    The result of the request is returned through GetBucketCORSResult.
    type BucketCORSRule struct {
    ID string
    AllowedMethods []string
    AllowedOrigins []string
    AllowedHeaders []string
    MaxAgeSeconds int
    ExposeHeaders []string
    }
    Parameter
    Description
    Type
    Required
    BucketCORSRule
    CORS rules, including ID, MaxAgeSeconds, AllowedOrigin, AllowedMethod, AllowedHeader, and ExposeHeader
    struct
    Yes
    ID
    Rule ID
    string
    No
    AllowedMethods
    Allowed methods, including GET, PUT, HEAD, POST, and DELETE
    []string
    Yes
    AllowedOrigins
    Allowed access sources, such as "http://cloud.tencent.com". Asterisks (*) are supported.
    []string
    Yes
    AllowedHeaders
    Allowed custom HTTP request headers that can be used by requests. Asterisks (*) are supported.
    []string
    No
    MaxAgeSeconds
    Validity period of the OPTIONS request result
    int
    No
    ExposeHeaders
    Custom header information that can be received by the browser from the server
    []string
    No

    Deleting CORS Configuration

    Feature description

    This API is used to delete the CORS configuration of a bucket.

    Method prototype

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

    Sample request

    package main
    
    import (
    "context"
    "github.com/tencentyun/cos-go-sdk-v5"
    "net/http"
    "net/url"
    "os"
    )
    
    func main(){
    // Bucket name in the format of `BucketName-APPID` (`APPID` is required), which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket.
    // Replace it with your region, which can be viewed in the COS console at https://console.tencentcloud.com/. For more information about regions, visit https://www.tencentcloud.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{
    // Get the key from environment variables
    // Environment variable `SECRETID` refers to the user's `SecretId`, which can be viewed in the CAM console at https://console.tencentcloud.com/cam/capi.
    SecretID: os.Getenv("SECRETID"), // User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1.
    // Environment variable `SECRETKEY` refers to the user's `SecretKey`, which can be viewed in the CAM console at https://console.tencentcloud.com/cam/capi.
    SecretKey: os.Getenv("SECRETKEY"), // User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1.
    },
    })
    _, err := client.Bucket.DeleteCORS(context.Background())
    if err != nil{
    panic(err)
    }
    }
    
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support