X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d940d88f991c14785110855ba0ee79ea5f401276..HEAD:/services/keepproxy/keepproxy.go diff --git a/services/keepproxy/keepproxy.go b/services/keepproxy/keepproxy.go index a79883147b..97a5ad6592 100644 --- a/services/keepproxy/keepproxy.go +++ b/services/keepproxy/keepproxy.go @@ -23,6 +23,7 @@ import ( "git.arvados.org/arvados.git/sdk/go/health" "git.arvados.org/arvados.git/sdk/go/httpserver" "git.arvados.org/arvados.git/sdk/go/keepclient" + "git.arvados.org/arvados.git/services/keepstore" "github.com/gorilla/mux" lru "github.com/hashicorp/golang-lru" "github.com/prometheus/client_golang/prometheus" @@ -271,10 +272,9 @@ func (h *proxyHandler) checkLoop(resp http.ResponseWriter, req *http.Request) er } func setCORSHeaders(resp http.ResponseWriter) { - resp.Header().Set("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, OPTIONS") - resp.Header().Set("Access-Control-Allow-Origin", "*") - resp.Header().Set("Access-Control-Allow-Headers", "Authorization, Content-Length, Content-Type, X-Keep-Desired-Replicas") - resp.Header().Set("Access-Control-Max-Age", "86486400") + keepstore.SetCORSHeaders(resp) + acam := "Access-Control-Allow-Methods" + resp.Header().Set(acam, resp.Header().Get(acam)+", POST") } type invalidPathHandler struct{} @@ -304,7 +304,6 @@ func (h *proxyHandler) Get(resp http.ResponseWriter, req *http.Request) { var err error var status int var expectLength, responseLength int64 - var proxiedURI = "-" logger := ctxlog.FromContext(req.Context()) defer func() { @@ -312,7 +311,6 @@ func (h *proxyHandler) Get(resp http.ResponseWriter, req *http.Request) { "locator": locator, "expectLength": expectLength, "responseLength": responseLength, - "proxiedURI": proxiedURI, "err": err, }) if status != http.StatusOK { @@ -321,6 +319,7 @@ func (h *proxyHandler) Get(resp http.ResponseWriter, req *http.Request) { }() kc := h.makeKeepClient(req) + kc.DiskCacheSize = keepclient.DiskCacheDisabled var pass bool var tok string @@ -345,9 +344,9 @@ func (h *proxyHandler) Get(resp http.ResponseWriter, req *http.Request) { switch req.Method { case "HEAD": - expectLength, proxiedURI, err = kc.Ask(locator) + expectLength, _, err = kc.Ask(locator) case "GET": - reader, expectLength, proxiedURI, err = kc.Get(locator) + reader, expectLength, _, err = kc.Get(locator) if reader != nil { defer reader.Close() } @@ -420,9 +419,9 @@ func (h *proxyHandler) Put(resp http.ResponseWriter, req *http.Request) { locatorIn := mux.Vars(req)["locator"] // Check if the client specified storage classes - if req.Header.Get("X-Keep-Storage-Classes") != "" { + if req.Header.Get(keepclient.XKeepStorageClasses) != "" { var scl []string - for _, sc := range strings.Split(req.Header.Get("X-Keep-Storage-Classes"), ",") { + for _, sc := range strings.Split(req.Header.Get(keepclient.XKeepStorageClasses), ",") { scl = append(scl, strings.Trim(sc, " ")) } kc.SetStorageClasses(scl)