aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2019-02-26 23:23:04 -0800
committerChris Lu <chris.lu@gmail.com>2019-02-26 23:23:04 -0800
commit70ac2f6ea85d9913ac0c68289074463af0d897bd (patch)
treeea685d7f063937214307969436369167ee04a37b
parent8a3e72566cb6273da88a9812a8e95d7109a5a74b (diff)
downloadseaweedfs-70ac2f6ea85d9913ac0c68289074463af0d897bd.tar.xz
seaweedfs-70ac2f6ea85d9913ac0c68289074463af0d897bd.zip
add namespace for ListAllMyBucketsResult
-rw-r--r--weed/s3api/s3api_bucket_handlers.go4
-rw-r--r--weed/s3api/s3api_bucket_handlers_test.go40
2 files changed, 43 insertions, 1 deletions
diff --git a/weed/s3api/s3api_bucket_handlers.go b/weed/s3api/s3api_bucket_handlers.go
index 1d319e354..d9508ae9c 100644
--- a/weed/s3api/s3api_bucket_handlers.go
+++ b/weed/s3api/s3api_bucket_handlers.go
@@ -2,6 +2,7 @@ package s3api
import (
"context"
+ "encoding/xml"
"fmt"
"math"
"net/http"
@@ -21,8 +22,9 @@ var (
)
type ListAllMyBucketsResult struct {
- Buckets []*s3.Bucket `xml:"Buckets>Bucket"`
+ XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListAllMyBucketsResult"`
Owner *s3.Owner
+ Buckets []*s3.Bucket `xml:"Buckets>Bucket"`
}
func (s3a *S3ApiServer) ListBucketsHandler(w http.ResponseWriter, r *http.Request) {
diff --git a/weed/s3api/s3api_bucket_handlers_test.go b/weed/s3api/s3api_bucket_handlers_test.go
new file mode 100644
index 000000000..188ccbcbd
--- /dev/null
+++ b/weed/s3api/s3api_bucket_handlers_test.go
@@ -0,0 +1,40 @@
+package s3api
+
+import (
+ "testing"
+ "time"
+
+ "github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/service/s3"
+)
+
+func TestListBucketsHandler(t *testing.T) {
+
+ expected := `<?xml version="1.0" encoding="UTF-8"?>
+<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><DisplayName></DisplayName><ID></ID></Owner><Buckets><Bucket><CreationDate>2011-04-09T12:34:49Z</CreationDate><Name>test1</Name></Bucket><Bucket><CreationDate>2011-02-09T12:34:49Z</CreationDate><Name>test2</Name></Bucket></Buckets></ListAllMyBucketsResult>`
+ var response ListAllMyBucketsResult
+
+ var buckets []*s3.Bucket
+ buckets = append(buckets, &s3.Bucket{
+ Name: aws.String("test1"),
+ CreationDate: aws.Time(time.Date(2011, 4, 9, 12, 34, 49, 0, time.UTC)),
+ })
+ buckets = append(buckets, &s3.Bucket{
+ Name: aws.String("test2"),
+ CreationDate: aws.Time(time.Date(2011, 2, 9, 12, 34, 49, 0, time.UTC)),
+ })
+
+ response = ListAllMyBucketsResult{
+ Owner: &s3.Owner{
+ ID: aws.String(""),
+ DisplayName: aws.String(""),
+ },
+ Buckets: buckets,
+ }
+
+ encoded := string(encodeResponse(response))
+ println(encoded)
+ if encoded != expected {
+ t.Errorf("unexpected output: %s\nexpecting:%s", encoded, expected)
+ }
+}