aboutsummaryrefslogtreecommitdiff
path: root/weed/server/filer_server_handlers_api.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/server/filer_server_handlers_api.go')
-rw-r--r--weed/server/filer_server_handlers_api.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/weed/server/filer_server_handlers_api.go b/weed/server/filer_server_handlers_api.go
index f2a64e6cb..f07aab88a 100644
--- a/weed/server/filer_server_handlers_api.go
+++ b/weed/server/filer_server_handlers_api.go
@@ -3,9 +3,12 @@ package weed_server
import (
"encoding/json"
"net/http"
+ "strconv"
"github.com/chrislusf/seaweedfs/weed/filer"
"github.com/chrislusf/seaweedfs/weed/glog"
+ "github.com/chrislusf/seaweedfs/weed/operation"
+ "github.com/chrislusf/seaweedfs/weed/util"
)
func (fs *FilerServer) apiHandler(w http.ResponseWriter, r *http.Request) {
@@ -32,5 +35,39 @@ func (fs *FilerServer) apiHandler(w http.ResponseWriter, r *http.Request) {
res.Error = err.Error()
}
writeJsonQuiet(w, r, http.StatusOK, res)
+ case "getFileSize":
+ res := filer.GetFileSizeResult{}
+ server, err := operation.LookupFileId(fs.getMasterNode(), apiRequest.FileId)
+ if err != nil {
+ res.Error = err.Error()
+ writeJsonQuiet(w, r, http.StatusOK, res)
+ return
+ }
+ head, err := util.Head(server)
+ if err != nil {
+ res.Error = err.Error()
+ writeJsonQuiet(w, r, http.StatusOK, res)
+ return
+ }
+ res.Size, err = strconv.ParseUint(head.Get("Content-Length"), 10, 0)
+ if err != nil {
+ res.Error = err.Error()
+ }
+ writeJsonQuiet(w, r, http.StatusOK, res)
+ case "getFileContent":
+ res := filer.GetFileContentResult{}
+ server, err := operation.LookupFileId(fs.getMasterNode(), apiRequest.FileId)
+ if err != nil {
+ res.Error = err.Error()
+ writeJsonQuiet(w, r, http.StatusOK, res)
+ return
+ }
+ res.Content, err = util.Get(server)
+ if err != nil {
+ res.Error = err.Error()
+ writeJsonQuiet(w, r, http.StatusOK, res)
+ return
+ }
+ writeJsonQuiet(w, r, http.StatusOK, res)
}
}