diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2017-03-14 08:21:29 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-03-14 08:21:29 -0700 |
| commit | 37b79174d182ce6c72a8198db72f3533cb24ddbb (patch) | |
| tree | 7c9e0bdfb54c1fbbd1aa2273d44a1fc5c8a9f772 /weed/server | |
| parent | b095496d30929ef0a5aa139a65084eca3c2bf9e7 (diff) | |
| parent | 3a67b6ddc17ae8bca7c3930749e0da2fbcf30c82 (diff) | |
| download | seaweedfs-37b79174d182ce6c72a8198db72f3533cb24ddbb.tar.xz seaweedfs-37b79174d182ce6c72a8198db72f3533cb24ddbb.zip | |
Merge pull request #469 from sparklxb/master
complement weed mount
Diffstat (limited to 'weed/server')
| -rw-r--r-- | weed/server/filer_server.go | 1 | ||||
| -rw-r--r-- | weed/server/filer_server_handlers_api.go | 36 |
2 files changed, 37 insertions, 0 deletions
diff --git a/weed/server/filer_server.go b/weed/server/filer_server.go index 0601effed..33b3677a5 100644 --- a/weed/server/filer_server.go +++ b/weed/server/filer_server.go @@ -107,6 +107,7 @@ func NewFilerServer(r *http.ServeMux, ip string, port int, master string, dir st r.HandleFunc("/admin/mv", fs.moveHandler) r.HandleFunc("/admin/register", fs.registerHandler) + r.HandleFunc("/__api__", fs.apiHandler) } r.HandleFunc("/", fs.filerHandler) diff --git a/weed/server/filer_server_handlers_api.go b/weed/server/filer_server_handlers_api.go new file mode 100644 index 000000000..f2a64e6cb --- /dev/null +++ b/weed/server/filer_server_handlers_api.go @@ -0,0 +1,36 @@ +package weed_server + +import ( + "encoding/json" + "net/http" + + "github.com/chrislusf/seaweedfs/weed/filer" + "github.com/chrislusf/seaweedfs/weed/glog" +) + +func (fs *FilerServer) apiHandler(w http.ResponseWriter, r *http.Request) { + request := r.FormValue("request") + apiRequest := filer.ApiRequest{} + + err := json.Unmarshal([]byte(request), &apiRequest) + if err != nil { + glog.V(0).Infoln("failing to read request", r.RequestURI, request) + writeJsonError(w, r, http.StatusInternalServerError, err) + } + switch apiRequest.Command { + case "listDirectories": + res := filer.ListDirectoriesResult{} + res.Directories, err = fs.filer.ListDirectories(apiRequest.Directory) + if err != nil { + res.Error = err.Error() + } + writeJsonQuiet(w, r, http.StatusOK, res) + case "listFiles": + res := filer.ListFilesResult{} + res.Files, err = fs.filer.ListFiles(apiRequest.Directory, apiRequest.FileName, 100) + if err != nil { + res.Error = err.Error() + } + writeJsonQuiet(w, r, http.StatusOK, res) + } +} |
