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  }