fix: case-insensitive lookups for metadata (#11489)

continuation of #11487, with more changes
This commit is contained in:
Harshavardhana
2021-02-08 18:12:28 -08:00
committed by GitHub
parent f9c5636c2d
commit 68d299e719
6 changed files with 69 additions and 41 deletions

View File

@@ -179,7 +179,7 @@ func (er erasureObjects) GetObjectNInfo(ctx context.Context, bucket, object stri
}
if objInfo.TransitionStatus == lifecycle.TransitionComplete {
// If transitioned, stream from transition tier unless object is restored locally or restore date is past.
restoreHdr, ok := getMapValue(objInfo.UserDefined, xhttp.AmzRestore)
restoreHdr, ok := caseInsensitiveMap(objInfo.UserDefined).Lookup(xhttp.AmzRestore)
if !ok || !strings.HasPrefix(restoreHdr, "ongoing-request=false") || (!objInfo.RestoreExpires.IsZero() && time.Now().After(objInfo.RestoreExpires)) {
return getTransitionedObjectReader(ctx, bucket, object, rs, h, objInfo, opts)
}