diff --git a/bucket_domain.go b/bucket_domain.go
index 87f78b6..73836d4 100644
--- a/bucket_domain.go
+++ b/bucket_domain.go
@@ -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
diff --git a/bucket_website.go b/bucket_website.go
index 3052bf1..1e43429 100644
--- a/bucket_website.go
+++ b/bucket_website.go
@@ -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
diff --git a/bucket_website_test.go b/bucket_website_test.go
index c59bcc8..9cee073 100644
--- a/bucket_website_test.go
+++ b/bucket_website_test.go
@@ -26,9 +26,6 @@ func TestBucketService_GetWebsite(t *testing.T) {
https
-
- Error.html
-
@@ -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",
+ },
},
},
}
@@ -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",
+ },
},
},
}
diff --git a/costesting/ci_test.go b/costesting/ci_test.go
index 8e485ee..e842ffe 100644
--- a/costesting/ci_test.go
+++ b/costesting/ci_test.go
@@ -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/",
+ },
},
},
}
diff --git a/example/bucket/putWebsite.go b/example/bucket/putWebsite.go
index c87fb23..fc09b28 100644
--- a/example/bucket/putWebsite.go
+++ b/example/bucket/putWebsite.go
@@ -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/",
+ },
},
},
}