diff --git a/weed/s3api/s3api_object_handlers.go b/weed/s3api/s3api_object_handlers.go index c8bea1bc5..1a9142b9f 100644 --- a/weed/s3api/s3api_object_handlers.go +++ b/weed/s3api/s3api_object_handlers.go @@ -393,11 +393,11 @@ func setUserMetadataKeyToLowercase(resp *http.Response) { } func passThroughResponse(proxyResponse *http.Response, w http.ResponseWriter) (statusCode int, bytesTransferred int64) { - // Preserve existing CORS headers that may have been set by middleware - existingCORSHeaders := make(map[string][]string) + // Capture existing CORS headers that may have been set by middleware + capturedCORSHeaders := make(map[string]string) for _, corsHeader := range corsHeaders { - if values, ok := w.Header()[corsHeader]; ok { - existingCORSHeaders[corsHeader] = append([]string{}, values...) + if value := w.Header().Get(corsHeader); value != "" { + capturedCORSHeaders[corsHeader] = value } }