diff options
| author | Chris Lu <chris.lu@gmail.com> | 2014-05-14 23:44:19 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2014-05-14 23:44:19 -0700 |
| commit | f7d6909b6f4ac42209395bf7f4fd3a6377613267 (patch) | |
| tree | ab07e6bbbd70253b647b676363a7e36833504177 /go/weed | |
| parent | 5367d965127d44aad1e0d5afc665c462c54a724a (diff) | |
| download | seaweedfs-f7d6909b6f4ac42209395bf7f4fd3a6377613267.tar.xz seaweedfs-f7d6909b6f4ac42209395bf7f4fd3a6377613267.zip | |
1. refactor, move image resizing to its own package
2. make code compile
Diffstat (limited to 'go/weed')
| -rw-r--r-- | go/weed/mount_std.go | 12 | ||||
| -rw-r--r-- | go/weed/weed_server/filer_server.go | 1 | ||||
| -rw-r--r-- | go/weed/weed_server/filer_server_handlers_api.go | 20 | ||||
| -rw-r--r-- | go/weed/weed_server/volume_server_handlers.go | 29 |
4 files changed, 8 insertions, 54 deletions
diff --git a/go/weed/mount_std.go b/go/weed/mount_std.go index ab3467d26..9376b3f2e 100644 --- a/go/weed/mount_std.go +++ b/go/weed/mount_std.go @@ -59,16 +59,16 @@ func (File) ReadAll(intr fs.Intr) ([]byte, fuse.Error) { } type Dir struct { - DirectoryId filer.DirectoryId - Name string + Path string + Id uint64 } func (dir Dir) Attr() fuse.Attr { - return fuse.Attr{Inode: 1, Mode: os.ModeDir | 0555} + return fuse.Attr{Inode: dir.Id, Mode: os.ModeDir | 0555} } func (dir Dir) Lookup(name string, intr fs.Intr) (fs.Node, fuse.Error) { - files_result, e := filer.ListFiles(*mountOptions.filer, dir.DirectoryId, name) + files_result, e := filer.ListFiles(*mountOptions.filer, dir.Path, name) if e != nil { return nil, fuse.ENOENT } @@ -86,13 +86,13 @@ func (WFS) Root() (fs.Node, fuse.Error) { func (dir *Dir) ReadDir(intr fs.Intr) ([]fuse.Dirent, fuse.Error) { ret := make([]fuse.Dirent, 0) - if dirs, e := filer.ListDirectories(*mountOptions.filer, dir.DirectoryId); e == nil { + if dirs, e := filer.ListDirectories(*mountOptions.filer, dir.Path); e == nil { for _, d := range dirs.Directories { dirId := uint64(d.Id) ret = append(ret, fuse.Dirent{Inode: dirId, Name: d.Name, Type: fuse.DT_Dir}) } } - if files, e := filer.ListFiles(*mountOptions.filer, dir.DirectoryId, ""); e == nil { + if files, e := filer.ListFiles(*mountOptions.filer, dir.Path, ""); e == nil { for _, f := range files.Files { if fileId, e := storage.ParseFileId(string(f.Id)); e == nil { fileInode := uint64(fileId.VolumeId)<<48 + fileId.Key diff --git a/go/weed/weed_server/filer_server.go b/go/weed/weed_server/filer_server.go index 94b4a501d..996de5020 100644 --- a/go/weed/weed_server/filer_server.go +++ b/go/weed/weed_server/filer_server.go @@ -26,7 +26,6 @@ func NewFilerServer(r *http.ServeMux, port int, master string, dir string, colle return } - r.HandleFunc("/__api__", fs.filerApiHandler) r.HandleFunc("/", fs.filerHandler) return fs, nil diff --git a/go/weed/weed_server/filer_server_handlers_api.go b/go/weed/weed_server/filer_server_handlers_api.go deleted file mode 100644 index 62b51ed1d..000000000 --- a/go/weed/weed_server/filer_server_handlers_api.go +++ /dev/null @@ -1,20 +0,0 @@ -package weed_server - -import ( - "net/http" -) - -func (fs *FilerServer) filerApiHandler(w http.ResponseWriter, r *http.Request) { - switch r.Method { - case "GET": - fs.GetOrHeadHandler(w, r, true) - case "HEAD": - fs.GetOrHeadHandler(w, r, false) - case "DELETE": - fs.DeleteHandler(w, r) - case "PUT": - fs.PostHandler(w, r) - case "POST": - fs.PostHandler(w, r) - } -} diff --git a/go/weed/weed_server/volume_server_handlers.go b/go/weed/weed_server/volume_server_handlers.go index 333a40377..5b99233a2 100644 --- a/go/weed/weed_server/volume_server_handlers.go +++ b/go/weed/weed_server/volume_server_handlers.go @@ -1,17 +1,12 @@ package weed_server import ( - "bytes" "code.google.com/p/weed-fs/go/glog" + "code.google.com/p/weed-fs/go/images" "code.google.com/p/weed-fs/go/operation" "code.google.com/p/weed-fs/go/stats" "code.google.com/p/weed-fs/go/storage" "code.google.com/p/weed-fs/go/topology" - "github.com/disintegration/imaging" - "image" - "image/gif" - "image/jpeg" - "image/png" "mime" "net/http" "strconv" @@ -132,27 +127,7 @@ func (vs *VolumeServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request, if r.FormValue("height") != "" { height, _ = strconv.Atoi(r.FormValue("height")) } - if width != 0 || height != 0 { - if srcImage, _, err := image.Decode(bytes.NewReader(n.Data)); err == nil { - bounds := srcImage.Bounds() - var dstImage *image.NRGBA - if width == height && bounds.Dx() != bounds.Dy() { - dstImage = imaging.Thumbnail(srcImage, width, height, imaging.Lanczos) - } else { - dstImage = imaging.Resize(srcImage, width, height, imaging.Lanczos) - } - var buf bytes.Buffer - switch ext { - case ".png": - png.Encode(&buf, dstImage) - case ".jpg": - jpeg.Encode(&buf, dstImage, nil) - case ".gif": - gif.Encode(&buf, dstImage, nil) - } - n.Data = buf.Bytes() - } - } + n.Data = images.Resized(ext, n.Data, width, height) } w.Header().Set("Content-Length", strconv.Itoa(len(n.Data))) if isGetMethod { |
