mirror of
https://github.com/project-zot/zot.git
synced 2025-01-06 22:40:28 -05:00
48bf7f69f8
Signed-off-by: Alexei Dodon <adodon@cisco.com>
25 lines
616 B
Go
25 lines
616 B
Go
package common
|
|
|
|
import (
|
|
"net/url"
|
|
|
|
"gopkg.in/resty.v1"
|
|
)
|
|
|
|
func Location(baseURL string, resp *resty.Response) string {
|
|
// For some API responses, the Location header is set and is supposed to
|
|
// indicate an opaque value. However, it is not clear if this value is an
|
|
// absolute URL (https://server:port/v2/...) or just a path (/v2/...)
|
|
// zot implements the latter as per the spec, but some registries appear to
|
|
// return the former - this needs to be clarified
|
|
loc := resp.Header().Get("Location")
|
|
|
|
uloc, err := url.Parse(loc)
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
|
|
path := uloc.Path
|
|
|
|
return baseURL + path
|
|
}
|