github.com/aliyun/aliyun-oss-go-sdk@v3.0.2+incompatible/sample/bucket_cors.go (about) 1 package sample 2 3 import ( 4 "fmt" 5 6 "github.com/aliyun/aliyun-oss-go-sdk/oss" 7 ) 8 9 // BucketCORSSample shows how to get or set the bucket CORS. 10 func BucketCORSSample() { 11 // New client 12 client, err := oss.New(endpoint, accessID, accessKey) 13 if err != nil { 14 HandleError(err) 15 } 16 17 // Create the bucket with default parameters 18 err = client.CreateBucket(bucketName) 19 if err != nil { 20 HandleError(err) 21 } 22 23 rule1 := oss.CORSRule{ 24 AllowedOrigin: []string{"*"}, 25 AllowedMethod: []string{"PUT", "GET", "POST"}, 26 AllowedHeader: []string{}, 27 ExposeHeader: []string{}, 28 MaxAgeSeconds: 100, 29 } 30 rule2 := oss.CORSRule{ 31 AllowedOrigin: []string{"http://www.a.com", "http://www.b.com"}, 32 AllowedMethod: []string{"GET"}, 33 AllowedHeader: []string{"Authorization"}, 34 ExposeHeader: []string{"x-oss-test", "x-oss-test1"}, 35 MaxAgeSeconds: 100, 36 } 37 38 // Case 1: Set the bucket CORS rules 39 err = client.SetBucketCORS(bucketName, []oss.CORSRule{rule1}) 40 if err != nil { 41 HandleError(err) 42 } 43 44 // Case 2: Set the bucket CORS rules. if CORS rules exist, they will be overwritten. 45 err = client.SetBucketCORS(bucketName, []oss.CORSRule{rule1, rule2}) 46 if err != nil { 47 HandleError(err) 48 } 49 50 // Case 3: Set the bucket CORS rules. if CORS rules exist, they will be overwritten. 51 isTrue := true 52 put := oss.PutBucketCORS{} 53 put.CORSRules = []oss.CORSRule{rule1, rule2} 54 put.ResponseVary = &isTrue 55 err = client.SetBucketCORSV2(bucketName, put) 56 if err != nil { 57 HandleError(err) 58 } 59 60 // Get the bucket's CORS 61 corsRes, err := client.GetBucketCORS(bucketName) 62 if err != nil { 63 HandleError(err) 64 } 65 for _, rule := range corsRes.CORSRules { 66 fmt.Printf("Cors Rules Allowed Origin:%s\n", rule.AllowedOrigin) 67 fmt.Printf("Cors Rules Allowed Method:%s\n", rule.AllowedMethod) 68 fmt.Printf("Cors Rules Allowed Header:%s\n", rule.AllowedHeader) 69 fmt.Printf("Cors Rules Expose Header:%s\n", rule.ExposeHeader) 70 fmt.Printf("Cors Rules Max Age Seconds:%d\n", rule.MaxAgeSeconds) 71 } 72 if corsRes.ResponseVary != nil { 73 fmt.Printf("Cors Rules Response Vary:%t\n", *corsRes.ResponseVary) 74 } 75 76 // Delete bucket's CORS 77 err = client.DeleteBucketCORS(bucketName) 78 if err != nil { 79 HandleError(err) 80 } 81 82 // Delete bucket 83 err = client.DeleteBucket(bucketName) 84 if err != nil { 85 HandleError(err) 86 } 87 88 fmt.Println("Bucket CORS Sample completed") 89 }