X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3280e2dc5fd16dca63c389b931658d4420faabaf..01cc618477e897423d6144beb082792e06a0e6b6:/services/keepproxy/keepproxy.go diff --git a/services/keepproxy/keepproxy.go b/services/keepproxy/keepproxy.go index ebdb6eb376..d0af4a58ea 100644 --- a/services/keepproxy/keepproxy.go +++ b/services/keepproxy/keepproxy.go @@ -15,6 +15,7 @@ import ( "os" "os/signal" "reflect" + "regexp" "sync" "syscall" "time" @@ -297,6 +298,8 @@ var BadAuthorizationHeader = errors.New("Missing or invalid Authorization header var ContentLengthMismatch = errors.New("Actual length != expected content length") var MethodNotSupported = errors.New("Method not supported") +var removeHint, _ = regexp.Compile("\\+K@[a-z0-9]{5}(\\+|$)") + func (this GetBlockHandler) ServeHTTP(resp http.ResponseWriter, req *http.Request) { SetCorsHeaders(resp) @@ -329,6 +332,8 @@ func (this GetBlockHandler) ServeHTTP(resp http.ResponseWriter, req *http.Reques var reader io.ReadCloser + locator = removeHint.ReplaceAllString(locator, "$1") + switch req.Method { case "HEAD": expectLength, proxiedURI, err = kc.Ask(locator)