-
Notifications
You must be signed in to change notification settings - Fork 255
/
Copy paths3api.go
46 lines (40 loc) · 843 Bytes
/
s3api.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package main
import (
"encoding/xml"
"io"
"io/ioutil"
)
type CompleteMultipartUpload struct {
XMLName xml.Name `xml:"CompleteMultipartUpload"`
PartNumbers []int `xml:"Part>PartNumber"`
}
type Delete struct {
XMLName xml.Name `xml:"Delete"`
Keys []string `xml:"Object>Key"`
}
func parseXML(r io.Reader, dat interface{}) error {
out, err := ioutil.ReadAll(r)
if err != nil {
return err
}
if err := xml.Unmarshal(out, &dat); err != nil {
return err
}
return nil
}
func parseCompleteMultipartUpload(r io.Reader) (*CompleteMultipartUpload, error) {
var cmu CompleteMultipartUpload
err := parseXML(r, &cmu)
if err != nil {
return nil, err
}
return &cmu, nil
}
func parseDelete(r io.Reader) (*Delete, error) {
var del Delete
err := parseXML(r, &del)
if err != nil {
return nil, err
}
return &del, nil
}