diff options
| author | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2024-04-27 19:39:22 +0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-27 07:39:22 -0700 |
| commit | 3d3ee04eb9d801efa618bc986941138dbc424b44 (patch) | |
| tree | ff33862e9f01ffcb165c3d3d70a6f06b592d8fb9 /weed/s3api/s3api_policy.go | |
| parent | a3dab1fcd0e8e4dbea4d8aba75d3b501275335ac (diff) | |
| download | seaweedfs-3d3ee04eb9d801efa618bc986941138dbc424b44.tar.xz seaweedfs-3d3ee04eb9d801efa618bc986941138dbc424b44.zip | |
[s3] Put bucket lifecycle configuration (#5510)
Diffstat (limited to 'weed/s3api/s3api_policy.go')
| -rw-r--r-- | weed/s3api/s3api_policy.go | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/weed/s3api/s3api_policy.go b/weed/s3api/s3api_policy.go index 6e2c8cfa2..dab2e3f02 100644 --- a/weed/s3api/s3api_policy.go +++ b/weed/s3api/s3api_policy.go @@ -47,8 +47,14 @@ type Filter struct { // Prefix holds the prefix xml tag in <Rule> and <Filter> type Prefix struct { - string - set bool + XMLName xml.Name `xml:"Prefix"` + set bool + + val string +} + +func (p Prefix) String() string { + return p.val } // MarshalXML encodes Prefix field into an XML form. @@ -56,11 +62,21 @@ func (p Prefix) MarshalXML(e *xml.Encoder, startElement xml.StartElement) error if !p.set { return nil } - return e.EncodeElement(p.string, startElement) + return e.EncodeElement(p.val, startElement) +} + +func (p *Prefix) UnmarshalXML(d *xml.Decoder, startElement xml.StartElement) error { + prefix := "" + _ = d.DecodeElement(&prefix, &startElement) + *p = Prefix{set: true, val: prefix} + return nil } // MarshalXML encodes Filter field into an XML form. func (f Filter) MarshalXML(e *xml.Encoder, start xml.StartElement) error { + if !f.set { + return nil + } if err := e.EncodeToken(start); err != nil { return err } |
