add back "/" prefix if it is missing in object

fix https://github.com/seaweedfs/seaweedfs/issues/3737
This commit is contained in:
chrislu
2022-10-29 17:54:30 -07:00
parent 0d9f2f9e7a
commit 8b9957d461
5 changed files with 48 additions and 6 deletions

View File

@@ -125,6 +125,14 @@ func (s3a *S3ApiServer) PutObjectHandler(w http.ResponseWriter, r *http.Request)
writeSuccessResponseEmpty(w, r)
}
func urlEscapeObject(object string) string {
t := urlPathEscape(removeDuplicateSlashes(object))
if strings.HasPrefix(t, "/") {
return t
}
return "/" + t
}
func urlPathEscape(object string) string {
var escapedParts []string
for _, part := range strings.Split(object, "/") {
@@ -419,7 +427,7 @@ 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)
delete(resp.Header, key)
}
}
}