diff --git a/cmd/signature-v2.go b/cmd/signature-v2.go index 64dbc7181..3549fcfeb 100644 --- a/cmd/signature-v2.go +++ b/cmd/signature-v2.go @@ -282,7 +282,13 @@ func canonicalizedResourceV2(encodedPath string, encodedQuery string) string { canonicalQueries = append(canonicalQueries, key) continue } - canonicalQueries = append(canonicalQueries, key+"="+val) + // Resources values should be unescaped + unescapedVal, err := url.QueryUnescape(val) + if err != nil { + errorIf(err, "Unable to unescape query value (query = `%s`, value = `%s`)", key, val) + continue + } + canonicalQueries = append(canonicalQueries, key+"="+unescapedVal) } if len(canonicalQueries) == 0 { return encodedPath