tencent cloud

Feedback

Adding Domain Names

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

    Feature Overview

    This document provides an overview of APIs and SDK code samples for custom domains.
    API
    Operation
    Description
    PUT Bucket domain
    Setting a custom domain
    Sets a custom domain for a bucket
    GET Bucket domain
    Querying a custom domain
    Queries the custom domain of a bucket
    DELETE Bucket domain
    Deleting custom domains
    Deletes custom domains from a bucket

    Setting Custom Domains

    Feature description

    This API is used to set a custom domain for a bucket.

    Method prototype

    func (s *BucketService) PutDomain(ctx context.Context, opt *BucketPutDomainOptions) (*Response, error)

    Sample request

    package main
    
    import (
    "context"
    "fmt"
    "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.BucketPutDomainOptions{
    Rules: []cos.BucketDomainRule{
    {
    Status: "ENABLED",
    Name: "www.example.com",
    Type: "REST",
    ForcedReplacement: "CNAME",
    },
    },
    }
    _, err := client.Bucket.PutDomain(context.Background(), opt)
    if err != nil{
    fmt.Println(err)
    }
    }

    Field description

    type BucketDomainRule struct {
    Status string
    Name string
    Type string
    ForcedReplacement string
    }
    
    type BucketPutDomainOptions struct {
    XMLName xml.Name
    Rules []BucketDomainRule
    }
    Parameter
    Description
    Type
    BucketPutDomainOptions
    Custom domain configurations
    Struct
    Rules
    Domain configuration rules
    Array
    Status
    Domain status. Valid values: ENABLED, DISABLED
    String
    Name
    Custom domain. Letters, digits, and dots (.) are supported.
    String
    Type
    Type of the origin server to bind. Valid values: REST, WEBSITE
    String
    ForcedReplacement
    Replaces existing configurations. Valid values: CNAME, TXT. If this parameter is specified, configurations will only be delivered after the domain ownership is verified.
    String

    Error codes

    The following describes some common errors that may occur when you call this API:
    Status Code
    Description
    HTTP 409 Conflict
    The domain record already exists, and forced overwrite is not specified in the request; OR the domain record does not exist, and forced overwrite is specified in the request
    HTTP 451 Unavailable For Legal Reasons
    The domain does not have an ICP filing in the Chinese mainland

    Querying a Custom Domain

    Feature description

    This API is used to query the custom domain set for a bucket.

    Method prototype

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

    Sample request

    package main
    
    import (
    "context"
    "fmt"
    "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.
    },
    })
    v, _, err := client.Bucket.GetDomain(context.Background())
    if err != nil{
    fmt.Println(err)
    }
    fmt.Println(v)
    }

    Response description

    type BucketGetDomainResult BucketPutDomainOptions
    Parameter
    Description
    Type
    BucketGetDomainResult
    Custom domain configurations
    Struct
    Rules
    Domain configuration rules
    Array
    Status
    Domain status. Valid values: ENABLED, DISABLED
    String
    Name
    Custom domain. Letters, digits, and dots (.) are supported.
    String
    Type
    Type of the origin server bound. Valid values: REST, WEBSITE
    String
    ForcedReplacement
    Replaces existing configurations. Valid values: CNAME, TXT. If this parameter is specified, configurations will only be delivered after the domain ownership is verified.
    String

    Deleting Custom Domains

    This API (DELETE Bucket domain) is used to delete all custom domains bound to a bucket.

    Method prototype

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

    Sample request

    package main
    
    import (
    "context"
    "fmt"
    "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.DeleteDomain(context.Background())
    if err != nil{
    fmt.Println(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