Browse Source

update bucket domain and website struct

tags/v0.7.8
jojoliang 5 years ago
parent
commit
b97a490e28
  1. 6
      bucket_domain.go
  2. 18
      bucket_website.go
  3. 22
      bucket_website_test.go
  4. 7
      costesting/ci_test.go
  5. 8
      example/bucket/putWebsite.go

6
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

18
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"`
RedirectProtocol *RedirectRequestsProtocol `xml:"RedirectAllRequestsTo,omitempty"`
Error *ErrorDocument `xml:"ErrorDocument,omitempty"`
RoutingRules *WebsiteRoutingRules `xml:"RoutingRules,omitempty"`
}
type BucketGetWebsiteResult BucketPutWebsiteOptions

22
bucket_website_test.go

@ -26,9 +26,6 @@ func TestBucketService_GetWebsite(t *testing.T) {
<RedirectAllRequestsTo>
<Protocol>https</Protocol>
</RedirectAllRequestsTo>
<ErrorDocument>
<Key>Error.html</Key>
</ErrorDocument>
<RoutingRules>
<RoutingRule>
<Condition>
@ -69,8 +66,10 @@ func TestBucketService_GetWebsite(t *testing.T) {
want := &BucketGetWebsiteResult{
XMLName: xml.Name{Local: "WebsiteConfiguration"},
Index: "index.html",
RedirectProtocol: "https",
Error: "Error.html",
RedirectProtocol: &RedirectRequestsProtocol{
"https",
},
RoutingRules: &WebsiteRoutingRules{
Rules: []WebsiteRoutingRule{
{
ConditionErrorCode: "404",
@ -88,6 +87,7 @@ func TestBucketService_GetWebsite(t *testing.T) {
RedirectReplaceKey: "demo.jpg",
},
},
},
}
if !reflect.DeepEqual(res, want) {
@ -101,9 +101,14 @@ func TestBucketService_PutWebsite(t *testing.T) {
opt := &BucketPutWebsiteOptions{
Index: "index.html",
RedirectProtocol: "https",
Error: "Error.html",
Rules: []WebsiteRoutingRule{
RedirectProtocol: &RedirectRequestsProtocol{
"https",
},
Error: &ErrorDocument{
"Error.html",
},
RoutingRules: &WebsiteRoutingRules{
[]WebsiteRoutingRule{
{
ConditionErrorCode: "404",
RedirectProtocol: "https",
@ -120,6 +125,7 @@ func TestBucketService_PutWebsite(t *testing.T) {
RedirectReplaceKey: "demo.jpg",
},
},
},
}
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {

7
costesting/ci_test.go

@ -308,9 +308,9 @@ func (s *CosTestSuite) TestPutGetDeleteLifeCycle() {
func (s *CosTestSuite) TestPutGetDeleteWebsite() {
opt := &cos.BucketPutWebsiteOptions{
Index: "index.html",
Error: "index_backup.html",
RedirectProtocol: "https",
Rules: []cos.WebsiteRoutingRule{
Error: &cos.ErrorDocument{"index_backup.html"},
RoutingRules: &cos.WebsiteRoutingRules{
[]cos.WebsiteRoutingRule{
{
ConditionErrorCode: "404",
RedirectProtocol: "https",
@ -322,6 +322,7 @@ func (s *CosTestSuite) TestPutGetDeleteWebsite() {
RedirectReplaceKeyPrefix: "documents/",
},
},
},
}
_, err := s.Client.Bucket.PutWebsite(context.Background(), opt)

8
example/bucket/putWebsite.go

@ -30,9 +30,10 @@ func main() {
opt := &cos.BucketPutWebsiteOptions{
Index: "index.html",
Error: "index_backup.html",
RedirectProtocol: "https",
Rules: []cos.WebsiteRoutingRule{
Error: &cos.ErrorDocument{"index_backup.html"},
RedirectProtocol: &cos.RedirectRequestsProtocol{"https"},
RoutingRules: &cos.WebsiteRoutingRules{
[]cos.WebsiteRoutingRule{
{
ConditionErrorCode: "404",
RedirectProtocol: "https",
@ -44,6 +45,7 @@ func main() {
RedirectReplaceKeyPrefix: "documents/",
},
},
},
}
_, err := c.Bucket.PutWebsite(context.Background(), opt)

Loading…
Cancel
Save