package util import ( "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/type/partnerlib" jyDocRpcUtil "app.yhyue.com/moapp/jy_docs/services/util" "app.yhyue.com/moapp/jyfs/rpc/filesystem" "bytes" "compress/gzip" "compress/zlib" "fmt" "github.com/gogf/gf/v2/os/gctx" "log" "time" ) // 上传文档信息 func FileUpload(fr *filesystem.SaveFileReq) (res partnerlib.UDRes) { if fr != nil && len(fr.RawFileContent) > 0 { t := time.Now() log.Println("--前---", len(fr.RawFileContent), t) b, e := CompressWithGzip(fr.RawFileContent) if e != nil { res.Msg = e.Error() return } fr.RawFileContent = b fRes, err := jyDocRpcUtil.FileSystem.SaveFile(gctx.New(), fr) log.Println("--后---", len(fr.RawFileContent), "耗时:", time.Since(t)) if err == nil && fRes.State { res.OssDocId = fRes.FileId } else { res.Code = -1 res.Msg = fmt.Sprintf("%s上传异常,err:%s", fr.Meta["docName"], err.Error()) } } return } func CompressWithGzip(data []byte) ([]byte, error) { var buf bytes.Buffer gzipW := gzip.NewWriter(&buf) if _, err := gzipW.Write(data); err != nil { return nil, err } if err := gzipW.Close(); err != nil { return nil, err } return buf.Bytes(), nil } func CompressWithZlib(data []byte) ([]byte, error) { var buf bytes.Buffer zlibW := zlib.NewWriter(&buf) if _, err := zlibW.Write(data); err != nil { return nil, err } if err := zlibW.Close(); err != nil { return nil, err } return buf.Bytes(), nil }