aboutsummaryrefslogtreecommitdiff
path: root/weed/server/filer_server_handlers_admin.go
blob: 5c1b2325573991332c53aba01483d82c4532ffec (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
34
35
36
37
package weed_server

import (
	"net/http"

	"github.com/chrislusf/seaweedfs/weed/glog"
	"github.com/chrislusf/seaweedfs/weed/filer2"
	"strconv"
)

func (fs *FilerServer) registerHandler(w http.ResponseWriter, r *http.Request) {
	path := r.FormValue("path")
	fileId := r.FormValue("fileId")
	fileSize, err := strconv.ParseUint(r.FormValue("fileSize"), 10, 64)
	if err != nil {
		glog.V(4).Infof("register %s to %s parse fileSize %s: %v", fileId, path, r.FormValue("fileSize"), err)
		writeJsonError(w, r, http.StatusInternalServerError, err)
		return
	}
	entry := &filer2.Entry{
		FullPath: filer2.FullPath(path),
		Attr: filer2.Attr{
			Mode: 0660,
		},
		Chunks: []filer2.FileChunk{{
			Fid:  filer2.FileId(fileId),
			Size: fileSize,
		}},
	}
	err = fs.filer.CreateEntry(entry)
	if err != nil {
		glog.V(4).Infof("register %s to %s error: %v", fileId, path, err)
		writeJsonError(w, r, http.StatusInternalServerError, err)
	} else {
		w.WriteHeader(http.StatusOK)
	}
}