github.com/aliyun/aliyun-oss-go-sdk@v3.0.2+incompatible/sample/bucket_responseheader.go (about)

     1  package sample
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/aliyun/aliyun-oss-go-sdk/oss"
     7  )
     8  
     9  // BucketResponseHeaderSample shows how to set, get and delete the bucket's response header.
    10  func BucketResponseHeaderSample() {
    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  	// Set bucket's response header.
    24  	reqHeader := oss.PutBucketResponseHeader{
    25  		Rule: []oss.ResponseHeaderRule{
    26  			{
    27  				Name: "name1",
    28  				Filters: oss.ResponseHeaderRuleFilters{
    29  					[]string{
    30  						"Put", "GetObject",
    31  					},
    32  				},
    33  				HideHeaders: oss.ResponseHeaderRuleHeaders{
    34  					[]string{
    35  						"Last-Modified",
    36  					},
    37  				},
    38  			},
    39  			{
    40  				Name: "name2",
    41  				Filters: oss.ResponseHeaderRuleFilters{
    42  					[]string{
    43  						"*",
    44  					},
    45  				},
    46  				HideHeaders: oss.ResponseHeaderRuleHeaders{
    47  					[]string{
    48  						"Last-Modified",
    49  					},
    50  				},
    51  			},
    52  		},
    53  	}
    54  	err = client.PutBucketResponseHeader(bucketName, reqHeader)
    55  	if err != nil {
    56  		HandleError(err)
    57  	}
    58  
    59  	fmt.Println("Bucket Response Header Set Success!")
    60  
    61  	// Get bucket's response header.
    62  	header, err := client.GetBucketResponseHeader(bucketName)
    63  	if err != nil {
    64  		HandleError(err)
    65  	}
    66  	for _, rule := range header.Rule {
    67  		fmt.Printf("Rule Name:%#v\n", rule.Name)
    68  		if len(rule.Filters.Operation) > 0 {
    69  			for _, Operation := range rule.Filters.Operation {
    70  				fmt.Printf("Rule Filter Operation:%s\n", Operation)
    71  			}
    72  		}
    73  		if len(rule.HideHeaders.Header) > 0 {
    74  			for _, head := range rule.HideHeaders.Header {
    75  				fmt.Printf("Rule Hide Headers Header:%s\n", head)
    76  			}
    77  		}
    78  	}
    79  
    80  	// Delete bucket's response header.
    81  	err = client.DeleteBucketResponseHeader(bucketName)
    82  	if err != nil {
    83  		HandleError(err)
    84  	}
    85  	fmt.Println("Bucket Response Header Delete Success!")
    86  
    87  	fmt.Println("BucketResponseHeaderSample completed")
    88  }