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