mirror of
https://github.com/minio/minio.git
synced 2025-02-09 12:48:08 -05:00
Honor overriding response headers for HEAD (#4784)
Though not clearly mentioned in S3 specification, we should override response headers for presigned HEAD requests as we do for GET.
This commit is contained in:
parent
812142f007
commit
6f7ace3d3e
@ -127,7 +127,7 @@ func (api gatewayAPIHandlers) GetObjectHandler(w http.ResponseWriter, r *http.Re
|
|||||||
setObjectHeaders(w, objInfo, hrange)
|
setObjectHeaders(w, objInfo, hrange)
|
||||||
|
|
||||||
// Set any additional requested response headers.
|
// Set any additional requested response headers.
|
||||||
setGetRespHeaders(w, r.URL.Query())
|
setHeadGetRespHeaders(w, r.URL.Query())
|
||||||
|
|
||||||
dataWritten = true
|
dataWritten = true
|
||||||
}
|
}
|
||||||
@ -398,6 +398,9 @@ func (api gatewayAPIHandlers) HeadObjectHandler(w http.ResponseWriter, r *http.R
|
|||||||
// Set standard object headers.
|
// Set standard object headers.
|
||||||
setObjectHeaders(w, objInfo, nil)
|
setObjectHeaders(w, objInfo, nil)
|
||||||
|
|
||||||
|
// Set any additional requested response headers.
|
||||||
|
setHeadGetRespHeaders(w, r.URL.Query())
|
||||||
|
|
||||||
// Successful response.
|
// Successful response.
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@ import (
|
|||||||
mux "github.com/gorilla/mux"
|
mux "github.com/gorilla/mux"
|
||||||
)
|
)
|
||||||
|
|
||||||
// supportedGetReqParams - supported request parameters for GET presigned request.
|
// supportedHeadGetReqParams - supported request parameters for GET and HEAD presigned request.
|
||||||
var supportedGetReqParams = map[string]string{
|
var supportedHeadGetReqParams = map[string]string{
|
||||||
"response-expires": "Expires",
|
"response-expires": "Expires",
|
||||||
"response-content-type": "Content-Type",
|
"response-content-type": "Content-Type",
|
||||||
"response-cache-control": "Cache-Control",
|
"response-cache-control": "Cache-Control",
|
||||||
@ -39,10 +39,10 @@ var supportedGetReqParams = map[string]string{
|
|||||||
"response-content-disposition": "Content-Disposition",
|
"response-content-disposition": "Content-Disposition",
|
||||||
}
|
}
|
||||||
|
|
||||||
// setGetRespHeaders - set any requested parameters as response headers.
|
// setHeadGetRespHeaders - set any requested parameters as response headers.
|
||||||
func setGetRespHeaders(w http.ResponseWriter, reqParams url.Values) {
|
func setHeadGetRespHeaders(w http.ResponseWriter, reqParams url.Values) {
|
||||||
for k, v := range reqParams {
|
for k, v := range reqParams {
|
||||||
if header, ok := supportedGetReqParams[k]; ok {
|
if header, ok := supportedHeadGetReqParams[k]; ok {
|
||||||
w.Header()[header] = v
|
w.Header()[header] = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -166,7 +166,7 @@ func (api objectAPIHandlers) GetObjectHandler(w http.ResponseWriter, r *http.Req
|
|||||||
setObjectHeaders(w, objInfo, hrange)
|
setObjectHeaders(w, objInfo, hrange)
|
||||||
|
|
||||||
// Set any additional requested response headers.
|
// Set any additional requested response headers.
|
||||||
setGetRespHeaders(w, r.URL.Query())
|
setHeadGetRespHeaders(w, r.URL.Query())
|
||||||
|
|
||||||
dataWritten = true
|
dataWritten = true
|
||||||
}
|
}
|
||||||
@ -254,6 +254,9 @@ func (api objectAPIHandlers) HeadObjectHandler(w http.ResponseWriter, r *http.Re
|
|||||||
// Set standard object headers.
|
// Set standard object headers.
|
||||||
setObjectHeaders(w, objInfo, nil)
|
setObjectHeaders(w, objInfo, nil)
|
||||||
|
|
||||||
|
// Set any additional requested response headers.
|
||||||
|
setHeadGetRespHeaders(w, r.URL.Query())
|
||||||
|
|
||||||
// Successful response.
|
// Successful response.
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user