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

     1  package sample
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/aliyun/aliyun-oss-go-sdk/oss"
     7  )
     8  
     9  // BucketWebsiteSample shows how to set, get and delete the bucket website.
    10  func BucketWebsiteSample() {
    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  	//Define bucket website indexWebsite or errorWebsite
    24  	var indexWebsite = "myindex.html"
    25  	var errorWebsite = "myerror.html"
    26  
    27  	// Set bucket website indexWebsite or errorWebsite
    28  	err = client.SetBucketWebsite(bucketName, indexWebsite, errorWebsite)
    29  	if err != nil {
    30  		HandleError(err)
    31  	}
    32  
    33  	bEnable := true
    34  	bDisable := false
    35  
    36  	// Define one website detail
    37  	ruleOk := oss.RoutingRule{
    38  		RuleNumber: 1,
    39  		Condition: oss.Condition{
    40  			KeyPrefixEquals:             "abc",
    41  			HTTPErrorCodeReturnedEquals: 404,
    42  			IncludeHeader: []oss.IncludeHeader{
    43  				oss.IncludeHeader{
    44  					Key:    "host",
    45  					Equals: "test.oss-cn-beijing-internal.aliyuncs.com",
    46  				},
    47  			},
    48  		},
    49  		Redirect: oss.Redirect{
    50  			RedirectType:          "Mirror",
    51  			PassQueryString:       &bDisable,
    52  			MirrorURL:             "http://www.test.com/",
    53  			MirrorPassQueryString: &bEnable,
    54  			MirrorFollowRedirect:  &bEnable,
    55  			MirrorCheckMd5:        &bDisable,
    56  			MirrorHeaders: oss.MirrorHeaders{
    57  				PassAll: &bEnable,
    58  				Pass:    []string{"key1", "key2"},
    59  				Remove:  []string{"remove1", "remove2"},
    60  				Set: []oss.MirrorHeaderSet{
    61  					oss.MirrorHeaderSet{
    62  						Key:   "setKey1",
    63  						Value: "setValue1",
    64  					},
    65  				},
    66  			},
    67  		},
    68  	}
    69  	wxmlDetail := oss.WebsiteXML{}
    70  	wxmlDetail.RoutingRules = append(wxmlDetail.RoutingRules, ruleOk)
    71  
    72  	// Get website
    73  	res, err := client.GetBucketWebsite(bucketName)
    74  	if err != nil {
    75  		HandleError(err)
    76  	}
    77  	fmt.Println("Website IndexDocument:", res.IndexDocument.Suffix)
    78  
    79  	// Set bucket website detail
    80  	err = client.SetBucketWebsiteDetail(bucketName, wxmlDetail)
    81  	if err != nil {
    82  		HandleError(err)
    83  	}
    84  	// Get website Detail
    85  	res, err = client.GetBucketWebsite(bucketName)
    86  	if err != nil {
    87  		HandleError(err)
    88  	}
    89  	fmt.Println("Website Redirect type:", res.RoutingRules[0].Redirect.RedirectType)
    90  
    91  	// Delete Website
    92  	err = client.DeleteBucketWebsite(bucketName)
    93  	if err != nil {
    94  		HandleError(err)
    95  	}
    96  
    97  	// Delete bucket
    98  	err = client.DeleteBucket(bucketName)
    99  	if err != nil {
   100  		HandleError(err)
   101  	}
   102  
   103  	fmt.Println("BucketWebsiteSample completed")
   104  }