bfs.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package dao
  2. import (
  3. "context"
  4. "errors"
  5. "io/ioutil"
  6. "net/http"
  7. "strconv"
  8. "go-common/library/database/bfs"
  9. "go-common/library/log"
  10. )
  11. const BUCKET = "live"
  12. const FILE_PATH = "/data/www/cover/"
  13. //上传至bfs相关接口
  14. //ImgUpload 上传图片至bfs
  15. func (d *Dao) ImgUpload(ctx context.Context, roomId int64, pic string, file []byte) (resp string, err error) {
  16. log.Info("ImgUpload_start")
  17. fileName := strconv.Itoa(int(roomId)) + ".jpg"
  18. reply, err := d.BfsClient.Upload(ctx, &bfs.Request{
  19. Bucket: BUCKET,
  20. Dir: "",
  21. ContentType: "",
  22. Filename: fileName,
  23. File: []byte(file),
  24. })
  25. if err != nil {
  26. log.Error("ImgUpload_bfs_Upload_failed,err:%v", err)
  27. return
  28. }
  29. resp = reply
  30. return
  31. }
  32. func (d *Dao) ImgDownload(ctx context.Context, pic string) (resp []byte, err error) {
  33. reply, err := http.Get(pic)
  34. if err != nil {
  35. log.Warn("ImgDownload_failed_err:%v", err)
  36. return
  37. }
  38. defer reply.Body.Close()
  39. if reply.StatusCode != 200 {
  40. err = errors.New("curl error http code not equal to 200")
  41. log.Warn("ImgDownload_failed_httpCode:%d", reply.StatusCode)
  42. return
  43. }
  44. resp, err = ioutil.ReadAll(reply.Body)
  45. if err != nil {
  46. log.Warn("ImgDownload_read_err:%v", err)
  47. return
  48. }
  49. return
  50. }