diff --git a/weed/s3api/filer_util_tags.go b/weed/s3api/filer_util_tags.go index 3d4da7825..fde8e243e 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 = "s3-tag-" ) 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..ca584f9f6 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, "s3-tag-") { + 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+"\"" {