aboutsummaryrefslogtreecommitdiff
path: root/weed/server/filer_server_handlers.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-01-24 00:01:44 -0800
committerChris Lu <chris.lu@gmail.com>2021-01-24 00:01:44 -0800
commit80b869268898798c662618b11933af82ee374f1c (patch)
treeaaa2904c1a55d0cb054db324b6964df540e84485 /weed/server/filer_server_handlers.go
parent6897f1bfbc0731b5e1581313a3e248ad7991cef8 (diff)
downloadseaweedfs-80b869268898798c662618b11933af82ee374f1c.tar.xz
seaweedfs-80b869268898798c662618b11933af82ee374f1c.zip
filer.sync: replicate outside of either cluster, only need to see filers
Diffstat (limited to 'weed/server/filer_server_handlers.go')
-rw-r--r--weed/server/filer_server_handlers.go30
1 files changed, 19 insertions, 11 deletions
diff --git a/weed/server/filer_server_handlers.go b/weed/server/filer_server_handlers.go
index 5b93c6d08..fcafe3893 100644
--- a/weed/server/filer_server_handlers.go
+++ b/weed/server/filer_server_handlers.go
@@ -3,30 +3,38 @@ package weed_server
import (
"github.com/chrislusf/seaweedfs/weed/util"
"net/http"
+ "strings"
"time"
"github.com/chrislusf/seaweedfs/weed/stats"
)
func (fs *FilerServer) filerHandler(w http.ResponseWriter, r *http.Request) {
+
+ start := time.Now()
+
+ // proxy to volume servers
+ var fileId string
+ if strings.HasPrefix(r.RequestURI, "/?proxyChunkId=") {
+ fileId = r.RequestURI[len("/?proxyChunkId="):]
+ }
+ if fileId != "" {
+ stats.FilerRequestCounter.WithLabelValues("proxy").Inc()
+ fs.proxyToVolumeServer(w,r,fileId)
+ stats.FilerRequestHistogram.WithLabelValues("proxy").Observe(time.Since(start).Seconds())
+ return
+ }
+
w.Header().Set("Server", "SeaweedFS Filer "+util.VERSION)
if r.Header.Get("Origin") != "" {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Credentials", "true")
}
- start := time.Now()
switch r.Method {
case "GET":
- fileId := r.FormValue("proxyToFileId")
- if fileId != "" {
- stats.FilerRequestCounter.WithLabelValues("proxy").Inc()
- fs.proxyToVolumeServer(w,r,fileId)
- stats.FilerRequestHistogram.WithLabelValues("proxy").Observe(time.Since(start).Seconds())
- } else {
- stats.FilerRequestCounter.WithLabelValues("get").Inc()
- fs.GetOrHeadHandler(w, r, true)
- stats.FilerRequestHistogram.WithLabelValues("get").Observe(time.Since(start).Seconds())
- }
+ stats.FilerRequestCounter.WithLabelValues("get").Inc()
+ fs.GetOrHeadHandler(w, r, true)
+ stats.FilerRequestHistogram.WithLabelValues("get").Observe(time.Since(start).Seconds())
case "HEAD":
stats.FilerRequestCounter.WithLabelValues("head").Inc()
fs.GetOrHeadHandler(w, r, false)