X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6d419ba53592a3e60c8aef5be7bc99643ab3a6ac..dad333f819ba1e4c7634527130634da40585f3aa:/services/keep-web/s3.go diff --git a/services/keep-web/s3.go b/services/keep-web/s3.go index 15f35f3608..49fb2456f5 100644 --- a/services/keep-web/s3.go +++ b/services/keep-web/s3.go @@ -90,7 +90,7 @@ func s3stringToSign(alg, scope, signedHeaders string, r *http.Request) (string, var canonicalHeaders string for _, h := range strings.Split(signedHeaders, ";") { if h == "host" { - canonicalHeaders += h + ":" + r.URL.Host + "\n" + canonicalHeaders += h + ":" + r.Host + "\n" } else { canonicalHeaders += h + ":" + r.Header.Get(h) + "\n" } @@ -503,6 +503,8 @@ func (h *handler) s3list(w http.ResponseWriter, r *http.Request, fs arvados.Cust // github.com/aws/aws-sdk-net never terminates its // paging loop). NextMarker string `xml:"NextMarker,omitempty"` + // ListObjectsV2 has a KeyCount response field. + KeyCount int } resp := listResp{ ListResp: s3.ListResp{ @@ -599,6 +601,7 @@ func (h *handler) s3list(w http.ResponseWriter, r *http.Request, fs arvados.Cust } sort.Slice(resp.CommonPrefixes, func(i, j int) bool { return resp.CommonPrefixes[i].Prefix < resp.CommonPrefixes[j].Prefix }) } + resp.KeyCount = len(resp.Contents) w.Header().Set("Content-Type", "application/xml") io.WriteString(w, xml.Header) if err := xml.NewEncoder(w).Encode(resp); err != nil {