aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2020-10-27 13:16:58 -0700
committerGitHub <noreply@github.com>2020-10-27 13:16:58 -0700
commit432c6f8db37736a91b523ad91364d95790777e77 (patch)
treef4906b92c07e3b0de2c1018dabe2c4f0dad0a1d1
parent06c15ab35cd67cad133c08ed47d7838d745a3899 (diff)
parent72f6b77deae239cc324ce30a31bc672fcd419ca2 (diff)
downloadseaweedfs-432c6f8db37736a91b523ad91364d95790777e77.tar.xz
seaweedfs-432c6f8db37736a91b523ad91364d95790777e77.zip
Merge pull request #1566 from taozix/master
return x-amz-tag-count header when GET object.
-rw-r--r--weed/s3api/filer_util_tags.go2
-rw-r--r--weed/server/filer_server_handlers_read.go13
2 files changed, 14 insertions, 1 deletions
diff --git a/weed/s3api/filer_util_tags.go b/weed/s3api/filer_util_tags.go
index 3d4da7825..bdc8f31da 100644
--- a/weed/s3api/filer_util_tags.go
+++ b/weed/s3api/filer_util_tags.go
@@ -7,7 +7,7 @@ import (
)
const (
- S3TAG_PREFIX = "s3-"
+ S3TAG_PREFIX = "x-amz-tagging-"
)
func (s3a *S3ApiServer) getTags(parentDirectoryPath string, entryName string) (tags map[string]string, err error) {
diff --git a/weed/server/filer_server_handlers_read.go b/weed/server/filer_server_handlers_read.go
index fbd45d6b9..731bd3545 100644
--- a/weed/server/filer_server_handlers_read.go
+++ b/weed/server/filer_server_handlers_read.go
@@ -93,6 +93,19 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request,
}
}
+ //set tag count
+ if r.Method == "GET" {
+ tagCount := 0
+ for k, _ := range entry.Extended {
+ if strings.HasPrefix(k, "x-amz-tagging-") {
+ tagCount++
+ }
+ }
+ if tagCount > 0 {
+ w.Header().Set("x-amz-tag-count", strconv.Itoa(tagCount))
+ }
+ }
+
// set etag
etag := filer.ETagEntry(entry)
if inm := r.Header.Get("If-None-Match"); inm == "\""+etag+"\"" {