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

     1  package sample
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/aliyun/aliyun-oss-go-sdk/oss"
     6  )
     7  
     8  // BucketRefererSample shows how to set, get and delete the bucket referer.
     9  func BucketRefererSample() {
    10  	// New client
    11  	client, err := oss.New(endpoint, accessID, accessKey)
    12  	if err != nil {
    13  		HandleError(err)
    14  	}
    15  
    16  	// Create the bucket with default parameters
    17  	err = client.CreateBucket(bucketName)
    18  	if err != nil {
    19  		HandleError(err)
    20  	}
    21  
    22  	var referers = []string{
    23  		"http://www.aliyun.com",
    24  		"http://www.???.aliyuncs.com",
    25  		"http://www.*.com",
    26  	}
    27  
    28  	// Case 1: Set referers. The referers are with wildcards ? and * which could represent one and zero to multiple characters
    29  	err = client.SetBucketReferer(bucketName, referers, false)
    30  	if err != nil {
    31  		HandleError(err)
    32  	}
    33  
    34  	// Case 2: Clear referers
    35  	referers = []string{}
    36  	err = client.SetBucketReferer(bucketName, referers, true)
    37  	if err != nil {
    38  		HandleError(err)
    39  	}
    40  
    41  	// Case 3: Create Refer With SetBucketRefererV2
    42  	var setBucketReferer oss.RefererXML
    43  	setBucketReferer.RefererList = []string{
    44  		"http://www.aliyun.com",
    45  		"https://www.aliyun.com",
    46  		"http://www.???.aliyuncs.com",
    47  		"http://www.*.com",
    48  	}
    49  	referer1 := "http://www.refuse.com"
    50  	referer2 := "https://*.hack.com"
    51  	referer3 := "http://ban.*.com"
    52  	referer4 := "https://www.?.deny.com"
    53  	setBucketReferer.RefererBlacklist = &oss.RefererBlacklist{
    54  		[]string{
    55  			referer1, referer2, referer3, referer4,
    56  		},
    57  	}
    58  	setBucketReferer.AllowEmptyReferer = false
    59  	boolTrue := true
    60  	setBucketReferer.AllowTruncateQueryString = &boolTrue
    61  	err = client.SetBucketRefererV2(bucketName, setBucketReferer)
    62  	if err != nil {
    63  		HandleError(err)
    64  	}
    65  
    66  	fmt.Println("Set Bucket Referer Success")
    67  
    68  	// Get bucket referer configuration
    69  	refRes, err := client.GetBucketReferer(bucketName)
    70  	if err != nil {
    71  		HandleError(err)
    72  	}
    73  	fmt.Println("Allow Empty Referer: ", refRes.AllowEmptyReferer)
    74  	if refRes.AllowTruncateQueryString != nil {
    75  		fmt.Println("Allow Truncate QueryString: ", *refRes.AllowTruncateQueryString)
    76  	}
    77  	if len(refRes.RefererList) > 0 {
    78  		for _, referer := range refRes.RefererList {
    79  			fmt.Println("Referer List: ", referer)
    80  		}
    81  	}
    82  	if refRes.RefererBlacklist != nil {
    83  		for _, refererBlack := range refRes.RefererBlacklist.Referer {
    84  			fmt.Println("Referer Black List: ", refererBlack)
    85  		}
    86  	}
    87  	fmt.Println("Get Bucket Referer Success")
    88  
    89  	// Delete bucket referer
    90  	// Case 1:Delete Refer With SetBucketReferer
    91  	err = client.SetBucketReferer(bucketName, []string{}, true)
    92  	if err != nil {
    93  		HandleError(err)
    94  	}
    95  
    96  	// Case 2:Delete Refer With SetBucketRefererV2
    97  	var delBucketReferer oss.RefererXML
    98  	delBucketReferer.RefererList = []string{}
    99  	delBucketReferer.AllowEmptyReferer = true
   100  	err = client.SetBucketRefererV2(bucketName, delBucketReferer)
   101  	if err != nil {
   102  		HandleError(err)
   103  	}
   104  	fmt.Println("Delete Bucket Referer Success")
   105  
   106  	// Delete bucket
   107  	err = client.DeleteBucket(bucketName)
   108  	if err != nil {
   109  		HandleError(err)
   110  	}
   111  	fmt.Println("BucketRefererSample completed")
   112  }