aboutsummaryrefslogtreecommitdiff
path: root/go/weed/weed_server/filer_server.go
blob: e56cb59643fb760a97d7a836b3666749b046dd89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package weed_server

import (
	"code.google.com/p/weed-fs/go/filer"
	"code.google.com/p/weed-fs/go/glog"
	"net/http"
	"strconv"
)

type FilerServer struct {
	port       string
	master     string
	collection string
	filer      filer.Filer
}

func NewFilerServer(r *http.ServeMux, port int, master string, dir string, collection string) (fs *FilerServer, err error) {
	fs = &FilerServer{
		master:     master,
		collection: collection,
		port:       ":" + strconv.Itoa(port),
	}

	if fs.filer, err = filer.NewFilerEmbedded(master, dir); err != nil {
		glog.Fatal("Can not start filer in dir", dir, ": ", err.Error())
		return
	}

	r.HandleFunc("/admin/mv", fs.moveHandler)
	r.HandleFunc("/", fs.filerHandler)

	return fs, nil
}