ossFileUpload.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package util
  2. import (
  3. "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/type/partnerlib"
  4. jyDocRpcUtil "app.yhyue.com/moapp/jy_docs/services/util"
  5. "app.yhyue.com/moapp/jyfs/rpc/filesystem"
  6. "bytes"
  7. "compress/gzip"
  8. "compress/zlib"
  9. "fmt"
  10. "github.com/gogf/gf/v2/os/gctx"
  11. "log"
  12. "time"
  13. )
  14. // 上传文档信息
  15. func FileUpload(fr *filesystem.SaveFileReq) (res partnerlib.UDRes) {
  16. if fr != nil && len(fr.RawFileContent) > 0 {
  17. t := time.Now()
  18. log.Println("--前---", len(fr.RawFileContent), t)
  19. b, e := CompressWithGzip(fr.RawFileContent)
  20. if e != nil {
  21. res.Msg = e.Error()
  22. return
  23. }
  24. fr.RawFileContent = b
  25. fRes, err := jyDocRpcUtil.FileSystem.SaveFile(gctx.New(), fr)
  26. log.Println("--后---", len(fr.RawFileContent), "耗时:", time.Since(t))
  27. log.Println("--后--- 返回值",fRes , "err:",err)
  28. if err == nil && fRes.State {
  29. res.OssDocId = fRes.FileId
  30. } else {
  31. res.Code = -1
  32. res.Msg = fmt.Sprintf("%s上传异常,err:%s", fr.Meta["docName"], err.Error())
  33. }
  34. }
  35. return
  36. }
  37. func CompressWithGzip(data []byte) ([]byte, error) {
  38. var buf bytes.Buffer
  39. gzipW := gzip.NewWriter(&buf)
  40. if _, err := gzipW.Write(data); err != nil {
  41. return nil, err
  42. }
  43. if err := gzipW.Close(); err != nil {
  44. return nil, err
  45. }
  46. return buf.Bytes(), nil
  47. }
  48. func CompressWithZlib(data []byte) ([]byte, error) {
  49. var buf bytes.Buffer
  50. zlibW := zlib.NewWriter(&buf)
  51. if _, err := zlibW.Write(data); err != nil {
  52. return nil, err
  53. }
  54. if err := zlibW.Close(); err != nil {
  55. return nil, err
  56. }
  57. return buf.Bytes(), nil
  58. }