forked from aliyun/aliyun-oss-go-sdk
/
bucket_cors.go
71 lines (59 loc) · 1.55 KB
/
bucket_cors.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
package sample
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
// BucketCORSSample shows how to get or set the bucket CORS.
func BucketCORSSample() {
// New client
client, err := oss.New(endpoint, accessID, accessKey)
if err != nil {
HandleError(err)
}
// Create the bucket with default parameters
err = client.CreateBucket(bucketName)
if err != nil {
HandleError(err)
}
rule1 := oss.CORSRule{
AllowedOrigin: []string{"*"},
AllowedMethod: []string{"PUT", "GET", "POST"},
AllowedHeader: []string{},
ExposeHeader: []string{},
MaxAgeSeconds: 100,
}
rule2 := oss.CORSRule{
AllowedOrigin: []string{"http://www.a.com", "http://www.b.com"},
AllowedMethod: []string{"GET"},
AllowedHeader: []string{"Authorization"},
ExposeHeader: []string{"x-oss-test", "x-oss-test1"},
MaxAgeSeconds: 100,
}
// Case 1: Set the bucket CORS rules
err = client.SetBucketCORS(bucketName, []oss.CORSRule{rule1})
if err != nil {
HandleError(err)
}
// Case 2: Set the bucket CORS rules. if CORS rules exist, they will be overwritten.
err = client.SetBucketCORS(bucketName, []oss.CORSRule{rule1, rule2})
if err != nil {
HandleError(err)
}
// Get the bucket's CORS
gbl, err := client.GetBucketCORS(bucketName)
if err != nil {
HandleError(err)
}
fmt.Println("Bucket CORS:", gbl.CORSRules)
// Delete bucket's CORS
err = client.DeleteBucketCORS(bucketName)
if err != nil {
HandleError(err)
}
// Delete bucket
err = client.DeleteBucket(bucketName)
if err != nil {
HandleError(err)
}
fmt.Println("BucketCORSSample completed")
}