Merge branch 'master' into 4717-read-only-keep-services-flag
[arvados.git] / services / keepproxy / keepproxy.go
index ebdb6eb376535060c72600c4144fad1cee097a85..d0af4a58ea5e7746d8243fb6272820e8c4801307 100644 (file)
@@ -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)