github.com/aliyun/aliyun-oss-go-sdk@v3.0.2+incompatible/sample/bucket_cname.go (about)

     1  package sample
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  
     7  	"github.com/aliyun/aliyun-oss-go-sdk/oss"
     8  )
     9  
    10  // BucketCnameSample shows how to get,put,list or delete the bucket cname.
    11  func BucketCnameSample() {
    12  	// New client
    13  	client, err := oss.New(endpoint, accessID, accessKey)
    14  	if err != nil {
    15  		HandleError(err)
    16  	}
    17  
    18  	// Create a bucket with default parameters
    19  	err = client.CreateBucket(bucketName)
    20  	if err != nil {
    21  		HandleError(err)
    22  	}
    23  
    24  	// case1:Create the bucket cname token
    25  	cname := "www.example.com"
    26  	cbResult, err := client.CreateBucketCnameToken(bucketName, cname)
    27  	if err != nil {
    28  		HandleError(err)
    29  	}
    30  	fmt.Printf("Cname: %s\n", cbResult.Cname)
    31  	fmt.Printf("Token: %s\n", cbResult.Token)
    32  	fmt.Printf("ExpireTime: %s\n", cbResult.ExpireTime)
    33  
    34  	// case2: Get the bucket cname token
    35  	ctResult, err := client.GetBucketCnameToken(bucketName, cname)
    36  	if err != nil {
    37  		HandleError(err)
    38  	}
    39  	fmt.Printf("Cname: %s\n", ctResult.Cname)
    40  	fmt.Printf("Token: %s\n", ctResult.Token)
    41  	fmt.Printf("ExpireTime: %s\n", ctResult.ExpireTime)
    42  
    43  	// case3: Add the bucket cname
    44  
    45  	// case 3-1: Add bucket cname
    46  	err = client.PutBucketCname(bucketName, cname)
    47  	if err != nil {
    48  		fmt.Println("Error:", err)
    49  		os.Exit(-1)
    50  	}
    51  	fmt.Println("Put Bucket Cname Success!")
    52  
    53  	// case 3-2: Bind certificate
    54  	var bindCnameConfig oss.PutBucketCname
    55  	var bindCertificateConfig oss.CertificateConfiguration
    56  	bindCnameConfig.Cname = "www.example.com"
    57  	bindCertificate := "-----BEGIN CERTIFICATE-----MIIGeDCCBOCgAwIBAgIRAPj4FWpW5XN6kwgU7*******-----END CERTIFICATE-----"
    58  	privateKey := "-----BEGIN CERTIFICATE-----MIIFBzCCA++gT2H2hT6Wb3nwxjpLIfXmSVcV*****-----END CERTIFICATE-----"
    59  	bindCertificateConfig.CertId = "92******-cn-hangzhou"
    60  	bindCertificateConfig.Certificate = bindCertificate
    61  	bindCertificateConfig.PrivateKey = privateKey
    62  	bindCertificateConfig.Force = true
    63  	bindCnameConfig.CertificateConfiguration = &bindCertificateConfig
    64  	err = client.PutBucketCnameWithCertificate(bucketName, bindCnameConfig)
    65  	if err != nil {
    66  		fmt.Println("Error:", err)
    67  		os.Exit(-1)
    68  	}
    69  	fmt.Println("Bind Certificate Success!")
    70  
    71  	// case 3-3: Unbind certificate
    72  	var putCnameConfig oss.PutBucketCname
    73  	var CertificateConfig oss.CertificateConfiguration
    74  	putCnameConfig.Cname = "www.example.com"
    75  	CertificateConfig.DeleteCertificate = true
    76  	putCnameConfig.CertificateConfiguration = &CertificateConfig
    77  
    78  	err = client.PutBucketCnameWithCertificate(bucketName, putCnameConfig)
    79  	if err != nil {
    80  		fmt.Println("Error:", err)
    81  		os.Exit(-1)
    82  	}
    83  	fmt.Println("Unbind Certificate Success!")
    84  
    85  	// case4: List the bucket cname
    86  	cnResult, err := client.ListBucketCname(bucketName)
    87  	if err != nil {
    88  		fmt.Println("Error:", err)
    89  		os.Exit(-1)
    90  	}
    91  	var certificate oss.Certificate
    92  	fmt.Printf("Bucket:%s\n", cnResult.Bucket)
    93  	fmt.Printf("Owner:%s\n", cnResult.Owner)
    94  	if len(cnResult.Cname) > 0 {
    95  		for _, cnameInfo := range cnResult.Cname {
    96  			fmt.Printf("Domain:%s\n", cnameInfo.Domain)
    97  			fmt.Printf("LastModified:%s\n", cnameInfo.LastModified)
    98  			fmt.Printf("Status:%s\n", cnameInfo.Status)
    99  			if cnameInfo.Certificate != certificate {
   100  				fmt.Printf("Type:%s\n", cnameInfo.Certificate.Type)
   101  				fmt.Printf("CertId:%s\n", cnameInfo.Certificate.CertId)
   102  				fmt.Printf("Status:%s\n", cnameInfo.Certificate.Status)
   103  				fmt.Printf("CreationDate:%s\n", cnameInfo.Certificate.CreationDate)
   104  				fmt.Printf("Fingerprint:%s\n", cnameInfo.Certificate.Fingerprint)
   105  				fmt.Printf("ValidStartDate:%s\n", cnameInfo.Certificate.ValidStartDate)
   106  				fmt.Printf("ValidEndDate:%s\n", cnameInfo.Certificate.ValidEndDate)
   107  			}
   108  		}
   109  	}
   110  
   111  	// case5: Delete the bucket cname
   112  	err = client.DeleteBucketCname(bucketName, cname)
   113  	if err != nil {
   114  		fmt.Println("Error:", err)
   115  		os.Exit(-1)
   116  	}
   117  	fmt.Println("Delete Bucket Cname Success!")
   118  
   119  	fmt.Println("BucketCnameSample completed")
   120  }