@@ -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)
|
||||
|
||||
36
weed/server/filer_server_handlers_api.go
Normal file
36
weed/server/filer_server_handlers_api.go
Normal file
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user