diff --git a/weed/s3api/auth_signature_v4.go b/weed/s3api/auth_signature_v4.go index f15bac4a9..93bffdd34 100644 --- a/weed/s3api/auth_signature_v4.go +++ b/weed/s3api/auth_signature_v4.go @@ -602,7 +602,7 @@ func extractHostHeader(r *http.Request) string { } // An IPv6 address literal must be enclosed in square brackets. - if strings.Contains(forwardedHost, ":") && !strings.HasPrefix(forwardedHost, "[") { + if ip := net.ParseIP(forwardedHost); ip != nil && ip.To4() == nil { forwardedHost = "[" + forwardedHost + "]" }