diff options
| author | chrislu <chris.lu@gmail.com> | 2025-08-30 11:18:03 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2025-08-30 11:18:03 -0700 |
| commit | 87021a146027f83f911619f71b9c27bd51e9d55a (patch) | |
| tree | c7720f1c285683ce19d28931bd7c11b5475a2844 /weed/server/common.go | |
| parent | 0748214c8e2f497a84b9392d2d7d4ec976bc84eb (diff) | |
| parent | 879d512b552d834136cfb746a239e6168e5c4ffb (diff) | |
| download | seaweedfs-origin/add-ec-vacuum.tar.xz seaweedfs-origin/add-ec-vacuum.zip | |
Merge branch 'master' into add-ec-vacuumorigin/add-ec-vacuum
Diffstat (limited to 'weed/server/common.go')
| -rw-r--r-- | weed/server/common.go | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/weed/server/common.go b/weed/server/common.go index cf65bd29d..49dd78ce0 100644 --- a/weed/server/common.go +++ b/weed/server/common.go @@ -19,12 +19,12 @@ import ( "time" "github.com/google/uuid" + "github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants" "github.com/seaweedfs/seaweedfs/weed/util/request_id" "github.com/seaweedfs/seaweedfs/weed/util/version" "google.golang.org/grpc/metadata" "github.com/seaweedfs/seaweedfs/weed/filer" - "github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants" "google.golang.org/grpc" @@ -271,9 +271,12 @@ func handleStaticResources2(r *mux.Router) { } func AdjustPassthroughHeaders(w http.ResponseWriter, r *http.Request, filename string) { - for header, values := range r.Header { - if normalizedHeader, ok := s3_constants.PassThroughHeaders[strings.ToLower(header)]; ok { - w.Header()[normalizedHeader] = values + // Apply S3 passthrough headers from query parameters + // AWS S3 supports overriding response headers via query parameters like: + // ?response-cache-control=no-cache&response-content-type=application/json + for queryParam, headerValue := range r.URL.Query() { + if normalizedHeader, ok := s3_constants.PassThroughHeaders[strings.ToLower(queryParam)]; ok && len(headerValue) > 0 { + w.Header().Set(normalizedHeader, headerValue[0]) } } adjustHeaderContentDisposition(w, r, filename) |
