ossFileUpload.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. if err == nil && fRes.State {
  28. res.OssDocId = fRes.FileId
  29. } else {
  30. res.Code = -1
  31. res.Msg = fmt.Sprintf("%s上传异常,err:%s", fr.Meta["docName"], err.Error())
  32. }
  33. }
  34. return
  35. }
  36. func CompressWithGzip(data []byte) ([]byte, error) {
  37. var buf bytes.Buffer
  38. gzipW := gzip.NewWriter(&buf)
  39. if _, err := gzipW.Write(data); err != nil {
  40. return nil, err
  41. }
  42. if err := gzipW.Close(); err != nil {
  43. return nil, err
  44. }
  45. return buf.Bytes(), nil
  46. }
  47. func CompressWithZlib(data []byte) ([]byte, error) {
  48. var buf bytes.Buffer
  49. zlibW := zlib.NewWriter(&buf)
  50. if _, err := zlibW.Write(data); err != nil {
  51. return nil, err
  52. }
  53. if err := zlibW.Close(); err != nil {
  54. return nil, err
  55. }
  56. return buf.Bytes(), nil
  57. }