Skip to content

Commit

Permalink
update bucket domain and website struct
Browse files Browse the repository at this point in the history
  • Loading branch information
jojoliang committed Sep 30, 2019
1 parent 2f480ce commit b97a490
Show file tree
Hide file tree
Showing 5 changed files with 94 additions and 73 deletions.
6 changes: 3 additions & 3 deletions bucket_domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import (

type BucketPutDomainOptions struct {
XMLName xml.Name `xml:"DomainConfiguration"`
Status string `xml:"DomainRule>Status,omitempty"`
Name string `xml:"DomainRule>Name,omitempty"`
Type string `xml:"DomainRule>Type,omitempty"`
Status string `xml:"DomainRule>Status"`
Name string `xml:"DomainRule>Name"`
Type string `xml:"DomainRule>Type"`
ForcedReplacement string `xml:"DomainRule>ForcedReplacement,omitempty"`
}
type BucketGetDomainResult BucketPutDomainOptions
Expand Down
22 changes: 17 additions & 5 deletions bucket_website.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,24 @@ type WebsiteRoutingRule struct {
RedirectReplaceKeyPrefix string `xml:"Redirect>ReplaceKeyPrefixWith,omitempty"`
}

type WebsiteRoutingRules struct {
Rules []WebsiteRoutingRule `xml:"RoutingRule,omitempty"`
}

type ErrorDocument struct {
Key string `xml:"Key,omitempty"`
}

type RedirectRequestsProtocol struct {
Protocol string `xml:"Protocol,omitempty"`
}

type BucketPutWebsiteOptions struct {
XMLName xml.Name `xml:"WebsiteConfiguration"`
Index string `xml:"IndexDocument>Suffix"`
RedirectProtocol string `xml:"RedirectAllRequestsTo>Protocol,omitempty"`
Error string `xml:"ErrorDocument>Key,omitempty"`
Rules []WebsiteRoutingRule `xml:"RoutingRules>RoutingRule,omitempty"`
XMLName xml.Name `xml:"WebsiteConfiguration"`
Index string `xml:"IndexDocument>Suffix"`
RedirectProtocol *RedirectRequestsProtocol `xml:"RedirectAllRequestsTo,omitempty"`
Error *ErrorDocument `xml:"ErrorDocument,omitempty"`
RoutingRules *WebsiteRoutingRules `xml:"RoutingRules,omitempty"`
}

type BucketGetWebsiteResult BucketPutWebsiteOptions
Expand Down
86 changes: 46 additions & 40 deletions bucket_website_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,6 @@ func TestBucketService_GetWebsite(t *testing.T) {
<RedirectAllRequestsTo>
<Protocol>https</Protocol>
</RedirectAllRequestsTo>
<ErrorDocument>
<Key>Error.html</Key>
</ErrorDocument>
<RoutingRules>
<RoutingRule>
<Condition>
Expand Down Expand Up @@ -67,25 +64,28 @@ func TestBucketService_GetWebsite(t *testing.T) {
}

want := &BucketGetWebsiteResult{
XMLName: xml.Name{Local: "WebsiteConfiguration"},
Index: "index.html",
RedirectProtocol: "https",
Error: "Error.html",
Rules: []WebsiteRoutingRule{
{
ConditionErrorCode: "404",
RedirectProtocol: "https",
RedirectReplaceKey: "404.html",
},
{
ConditionPrefix: "docs/",
RedirectProtocol: "https",
RedirectReplaceKeyPrefix: "documents/",
},
{
ConditionPrefix: "img/",
RedirectProtocol: "https",
RedirectReplaceKey: "demo.jpg",
XMLName: xml.Name{Local: "WebsiteConfiguration"},
Index: "index.html",
RedirectProtocol: &RedirectRequestsProtocol{
"https",
},
RoutingRules: &WebsiteRoutingRules{
Rules: []WebsiteRoutingRule{
{
ConditionErrorCode: "404",
RedirectProtocol: "https",
RedirectReplaceKey: "404.html",
},
{
ConditionPrefix: "docs/",
RedirectProtocol: "https",
RedirectReplaceKeyPrefix: "documents/",
},
{
ConditionPrefix: "img/",
RedirectProtocol: "https",
RedirectReplaceKey: "demo.jpg",
},
},
},
}
Expand All @@ -100,24 +100,30 @@ func TestBucketService_PutWebsite(t *testing.T) {
defer teardown()

opt := &BucketPutWebsiteOptions{
Index: "index.html",
RedirectProtocol: "https",
Error: "Error.html",
Rules: []WebsiteRoutingRule{
{
ConditionErrorCode: "404",
RedirectProtocol: "https",
RedirectReplaceKey: "404.html",
},
{
ConditionPrefix: "docs/",
RedirectProtocol: "https",
RedirectReplaceKeyPrefix: "documents/",
},
{
ConditionPrefix: "img/",
RedirectProtocol: "https",
RedirectReplaceKey: "demo.jpg",
Index: "index.html",
RedirectProtocol: &RedirectRequestsProtocol{
"https",
},
Error: &ErrorDocument{
"Error.html",
},
RoutingRules: &WebsiteRoutingRules{
[]WebsiteRoutingRule{
{
ConditionErrorCode: "404",
RedirectProtocol: "https",
RedirectReplaceKey: "404.html",
},
{
ConditionPrefix: "docs/",
RedirectProtocol: "https",
RedirectReplaceKeyPrefix: "documents/",
},
{
ConditionPrefix: "img/",
RedirectProtocol: "https",
RedirectReplaceKey: "demo.jpg",
},
},
},
}
Expand Down
27 changes: 14 additions & 13 deletions costesting/ci_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -307,19 +307,20 @@ func (s *CosTestSuite) TestPutGetDeleteLifeCycle() {

func (s *CosTestSuite) TestPutGetDeleteWebsite() {
opt := &cos.BucketPutWebsiteOptions{
Index: "index.html",
Error: "index_backup.html",
RedirectProtocol: "https",
Rules: []cos.WebsiteRoutingRule{
{
ConditionErrorCode: "404",
RedirectProtocol: "https",
RedirectReplaceKey: "404.html",
},
{
ConditionPrefix: "docs/",
RedirectProtocol: "https",
RedirectReplaceKeyPrefix: "documents/",
Index: "index.html",
Error: &cos.ErrorDocument{"index_backup.html"},
RoutingRules: &cos.WebsiteRoutingRules{
[]cos.WebsiteRoutingRule{
{
ConditionErrorCode: "404",
RedirectProtocol: "https",
RedirectReplaceKey: "404.html",
},
{
ConditionPrefix: "docs/",
RedirectProtocol: "https",
RedirectReplaceKeyPrefix: "documents/",
},
},
},
}
Expand Down
26 changes: 14 additions & 12 deletions example/bucket/putWebsite.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,20 @@ func main() {

opt := &cos.BucketPutWebsiteOptions{
Index: "index.html",
Error: "index_backup.html",
RedirectProtocol: "https",
Rules: []cos.WebsiteRoutingRule{
{
ConditionErrorCode: "404",
RedirectProtocol: "https",
RedirectReplaceKey: "404.html",
},
{
ConditionPrefix: "docs/",
RedirectProtocol: "https",
RedirectReplaceKeyPrefix: "documents/",
Error: &cos.ErrorDocument{"index_backup.html"},
RedirectProtocol: &cos.RedirectRequestsProtocol{"https"},
RoutingRules: &cos.WebsiteRoutingRules{
[]cos.WebsiteRoutingRule{
{
ConditionErrorCode: "404",
RedirectProtocol: "https",
RedirectReplaceKey: "404.html",
},
{
ConditionPrefix: "docs/",
RedirectProtocol: "https",
RedirectReplaceKeyPrefix: "documents/",
},
},
},
}
Expand Down

0 comments on commit b97a490

Please sign in to comment.