OSDN Git Service

Create ossClient.go (#574)
[bytom/vapor.git] / vendor / github.com / aliyun / aliyun-oss-go-sdk / sample / bucket_website.go
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 }