mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-09-05 15:47:13 +00:00
Update weed/s3api/s3api_object_handlers.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -392,14 +392,25 @@ func setUserMetadataKeyToLowercase(resp *http.Response) {
|
||||
}
|
||||
}
|
||||
|
||||
func passThroughResponse(proxyResponse *http.Response, w http.ResponseWriter) (statusCode int, bytesTransferred int64) {
|
||||
// Capture existing CORS headers that may have been set by middleware
|
||||
capturedCORSHeaders := make(map[string]string)
|
||||
func captureCORSHeaders(w http.ResponseWriter, corsHeaders []string) map[string]string {
|
||||
captured := make(map[string]string)
|
||||
for _, corsHeader := range corsHeaders {
|
||||
if value := w.Header().Get(corsHeader); value != "" {
|
||||
capturedCORSHeaders[corsHeader] = value
|
||||
captured[corsHeader] = value
|
||||
}
|
||||
}
|
||||
return captured
|
||||
}
|
||||
|
||||
func restoreCORSHeaders(w http.ResponseWriter, capturedCORSHeaders map[string]string) {
|
||||
for corsHeader, values := range capturedCORSHeaders {
|
||||
w.Header()[corsHeader] = values
|
||||
}
|
||||
}
|
||||
|
||||
func passThroughResponse(proxyResponse *http.Response, w http.ResponseWriter) (statusCode int, bytesTransferred int64) {
|
||||
// Capture existing CORS headers that may have been set by middleware
|
||||
capturedCORSHeaders := captureCORSHeaders(w, corsHeaders)
|
||||
|
||||
// Copy headers from proxy response
|
||||
for k, v := range proxyResponse.Header {
|
||||
@@ -407,9 +418,7 @@ func passThroughResponse(proxyResponse *http.Response, w http.ResponseWriter) (s
|
||||
}
|
||||
|
||||
// Restore CORS headers that were set by middleware
|
||||
for corsHeader, values := range existingCORSHeaders {
|
||||
w.Header()[corsHeader] = values
|
||||
}
|
||||
restoreCORSHeaders(w, capturedCORSHeaders)
|
||||
|
||||
if proxyResponse.Header.Get("Content-Range") != "" && proxyResponse.StatusCode == 200 {
|
||||
w.WriteHeader(http.StatusPartialContent)
|
||||
|
||||
Reference in New Issue
Block a user