aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/s3api_object_handlers.go
diff options
context:
space:
mode:
authorfamosss <zzq09494@ly.com>2022-10-25 08:29:52 +0800
committerGitHub <noreply@github.com>2022-10-24 17:29:52 -0700
commit25e012d30b3746015e2c41a2137ef8522dec8d12 (patch)
treea75612f5ab93c94c0529f10e9f100d434a03b247 /weed/s3api/s3api_object_handlers.go
parent091f999e8c6cd586be363869df0046a8140e998c (diff)
downloadseaweedfs-25e012d30b3746015e2c41a2137ef8522dec8d12.tar.xz
seaweedfs-25e012d30b3746015e2c41a2137ef8522dec8d12.zip
fix: set user metadata key to lowercase (#3894)
* fix: set user metadata key to lowercase * feat: simplify a bit
Diffstat (limited to 'weed/s3api/s3api_object_handlers.go')
-rw-r--r--weed/s3api/s3api_object_handlers.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/weed/s3api/s3api_object_handlers.go b/weed/s3api/s3api_object_handlers.go
index 8c4e3f0e8..37851b147 100644
--- a/weed/s3api/s3api_object_handlers.go
+++ b/weed/s3api/s3api_object_handlers.go
@@ -409,10 +409,22 @@ func (s3a *S3ApiServer) proxyToFiler(w http.ResponseWriter, r *http.Request, des
return
}
+ setUserMetadataKeyToLowercase(resp)
+
responseStatusCode := responseFn(resp, w)
s3err.PostLog(r, responseStatusCode, s3err.ErrNone)
}
+func setUserMetadataKeyToLowercase(resp *http.Response) {
+ for key, value := range resp.Header {
+ if strings.HasPrefix(key, s3_constants.AmzUserMetaPrefix) {
+ resp.Header[strings.ToLower(key)] = value
+ delete(resp.Header,key)
+ continue
+ }
+ }
+}
+
func passThroughResponse(proxyResponse *http.Response, w http.ResponseWriter) (statusCode int) {
for k, v := range proxyResponse.Header {
w.Header()[k] = v