tencent cloud

Feedback

Cross-Origin Resource Sharing

Last updated: 2022-03-31 16:13:00

    Overview

    This document provides an overview of APIs and SDK sample codes related to cross-origin resource sharing (CORS).

    API Operation Description
    PUT Bucket cors Setting CORS configuration Sets the CORS permissions of bucket
    GET Bucket cors Querying CORS configuration Queries the CORS configuration of a bucket
    DELETE Bucket cors Deleting CORS configuration Deletes the CORS configuration of a bucket

    Setting CORS Configuration

    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.intl.cloud.tencent.com/cos5/bucket
       // Replace it with your region, which can be viewed in the COS console at https://console.intl.cloud.tencent.com/. For more information about regions, see https://intl.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{
               // Get the key from environment variables
               // Environment variable `SECRETID` refers to the user's SecretId, which can be viewed at https://console.intl.cloud.tencent.com/cam/capi
               SecretID: os.Getenv("SECRETID"),
               // Environment variable `SECRETKEY` refers to the user's SecretId, which can be viewed at https://console.intl.cloud.tencent.com/cam/capi
               SecretKey: os.Getenv("SECRETKEY"),
           },
       })
       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)
       }
    }
    

    Parameter 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

    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.intl.cloud.tencent.com/cos5/bucket
       // Replace it with your region, which can be viewed in the COS console at https://console.intl.cloud.tencent.com/. For more information about regions, see https://intl.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{
               // Get the key from environment variables
               // Environment variable `SECRETID` refers to the user's SecretId, which can be viewed at https://console.intl.cloud.tencent.com/cam/capi
               SecretID: os.Getenv("SECRETID"),
               // Environment variable `SECRETKEY` refers to the user's SecretId, which can be viewed at https://console.intl.cloud.tencent.com/cam/capi
               SecretKey: os.Getenv("SECRETKEY"),
           },
       })
       _, _, 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

    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.intl.cloud.tencent.com/cos5/bucket
       // Replace it with your region, which can be viewed in the COS console at https://console.intl.cloud.tencent.com/. For more information about regions, see https://intl.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{
               // Get the key from environment variables
               // Environment variable `SECRETID` refers to the user's SecretId, which can be viewed at https://console.intl.cloud.tencent.com/cam/capi
               SecretID: os.Getenv("SECRETID"),
               // Environment variable `SECRETKEY` refers to the user's SecretId, which can be viewed at https://console.intl.cloud.tencent.com/cam/capi
               SecretKey: os.Getenv("SECRETKEY"),
           },
       })
       _, 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