17009: Fix bucket-level ops using virtual host-style requests.
authorTom Clegg <tom@tomclegg.ca>
Wed, 25 Nov 2020 17:14:34 +0000 (12:14 -0500)
committerTom Clegg <tom@tomclegg.ca>
Wed, 25 Nov 2020 17:14:34 +0000 (12:14 -0500)
refs #17009

Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@tomclegg.ca>

services/keep-web/s3.go

index 4ee69f277d7e621d19bf69a1dc8f0cbdf82532ad..373fd9a25d56608d1c418da45221836b1f5cdb16 100644 (file)
@@ -225,7 +225,7 @@ func (h *handler) serveS3(w http.ResponseWriter, r *http.Request) bool {
        fspath := "/by_id"
        if id := parseCollectionIDFromDNSName(r.Host); id != "" {
                fspath += "/" + id
-               objectNameGiven = true
+               objectNameGiven = strings.Count(strings.TrimSuffix(r.URL.Path, "/"), "/") > 0
        } else {
                objectNameGiven = strings.Count(strings.TrimSuffix(r.URL.Path, "/"), "/") > 1
        }