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 }