"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"
}
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{}
var err error
var status int
var expectLength, responseLength int64
- var proxiedURI = "-"
logger := ctxlog.FromContext(req.Context())
defer func() {
"locator": locator,
"expectLength": expectLength,
"responseLength": responseLength,
- "proxiedURI": proxiedURI,
"err": err,
})
if status != http.StatusOK {
}()
kc := h.makeKeepClient(req)
+ kc.DiskCacheSize = keepclient.DiskCacheDisabled
var pass bool
var tok string
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()
}
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)