package handler import ( "io" "mstore/app/operator" "mstore/app/router" ) func (hand *Handler) FileExists(rctx *router.Context) { hand.logg.Debugf("Handle FileExists") filepath := rctx.PathMap["filepath"] params := &operator.FileExistsParams{ Filepath: filepath, } code, res, err := hand.oper.FileExists(params) if err != nil { hand.logg.Errorf("FileExists error: %v", err) rctx.SetStatus(code) return } rctx.SetHeader("Content-Type", res.ContentType) rctx.SetHeader("Content-Length", res.ContentLength) rctx.SetHeader("Content-Digest", res.ContentDigest) rctx.SetStatus(code) } func (hand *Handler) PutFile(rctx *router.Context) { hand.logg.Debugf("Handle PutFile") contentLength := rctx.GetHeader("Content-Length") contentType := rctx.GetHeader("Content-Type") filepath := rctx.PathMap["filepath"] params := &operator.PutFileParams{ Filepath: filepath, ContentLength: contentLength, ContentType: contentType, Source: rctx.Request.Body, } code, _, err := hand.oper.PutFile(params) if err != nil { hand.logg.Errorf("PutFile error: %v", err) rctx.SetStatus(code) return } rctx.SetStatus(code) } func (hand *Handler) GetFile(rctx *router.Context) { hand.logg.Debugf("Handle GetFile") filepath := rctx.PathMap["filepath"] params := &operator.GetFileParams{ Filepath: filepath, } hand.logg.Debugf("filepath: %s", filepath) code, res, err := hand.oper.GetFile(params) if err != nil { hand.logg.Errorf("PutFile error: %v", err) rctx.SetStatus(code) return } rctx.SetStatus(code) rctx.SetHeader("Content-Type", res.ContentType) rctx.SetHeader("Content-Length", res.ContentLength) rctx.SetHeader("Content-Digest", res.ContentDigest) if res.Source != nil { defer res.Source.Close() _, err = io.Copy(rctx.Writer, res.Source) if err != nil { hand.logg.Errorf("GetFile error: %v", err) return } } } func (hand *Handler) DeleteFile(rctx *router.Context) { hand.logg.Debugf("Handle DeleteFile") filepath := rctx.PathMap["filepath"] params := &operator.DeleteFileParams{ Filepath: filepath, } code, _, err := hand.oper.DeleteFile(params) if err != nil { hand.logg.Errorf("GetFile error: %v", err) } rctx.SetStatus(code) }