diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-01-24 00:01:44 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-01-24 00:01:44 -0800 |
| commit | 80b869268898798c662618b11933af82ee374f1c (patch) | |
| tree | aaa2904c1a55d0cb054db324b6964df540e84485 /weed/server/filer_server_handlers.go | |
| parent | 6897f1bfbc0731b5e1581313a3e248ad7991cef8 (diff) | |
| download | seaweedfs-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.go | 30 |
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) |
