diff --git a/spike/review/reinvent/ezmded/server/server.go b/spike/review/reinvent/ezmded/server/server.go index 089213a..e5cc95a 100644 --- a/spike/review/reinvent/ezmded/server/server.go +++ b/spike/review/reinvent/ezmded/server/server.go @@ -3,6 +3,7 @@ package main import ( "encoding/json" "errors" + "io" "io/ioutil" "local/router" "net/http" @@ -92,7 +93,18 @@ func (server *Server) apiV0MediaHandler(w http.ResponseWriter, r *http.Request) } func (server *Server) apiV0MediaIDHandler(w http.ResponseWriter, r *http.Request) error { - return errors.New("not impl" + r.URL.Path) + id := path.Base(r.URL.Path) + f, err := os.Open(path.Join(server.root, "media", id)) + if os.IsNotExist(err) { + http.NotFound(w, r) + return nil + } + if err != nil { + return err + } + defer f.Close() + io.Copy(w, f) + return nil } func (server *Server) apiV0FilesHandler(w http.ResponseWriter, r *http.Request) error {