ossclient.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package oss
  2. import (
  3. "esindex/config"
  4. "fmt"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. "go.uber.org/zap"
  7. "io/ioutil"
  8. util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
  9. "jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
  10. "os"
  11. "time"
  12. )
  13. var (
  14. //ossEndpoint = "oss-cn-beijing-internal.aliyuncs.com" //正式环境用:oss-cn-beijing-internal.aliyuncs.com 测试:oss-cn-beijing.aliyuncs.com
  15. //ossAccessKeyId = "LTAI4G5x9aoZx8dDamQ7vfZi"
  16. //ossAccessKeySecret = "Bk98FsbPYXcJe72n1bG3Ssf73acuNh"
  17. //ossBucketName = "topjy"
  18. ossclient *oss.Client
  19. )
  20. func InitOss() {
  21. now := time.Now()
  22. if config.Conf.DB.Oss.Endpoint == "" || config.Conf.DB.Oss.AccessKey == "" || config.Conf.DB.Oss.AccessSecret == "" {
  23. log.Info("InitOss", zap.String("OSS:", "配置信息为空"))
  24. os.Exit(-1)
  25. }
  26. client, err := oss.New(config.Conf.DB.Oss.Endpoint, config.Conf.DB.Oss.AccessKey, config.Conf.DB.Oss.AccessSecret)
  27. if err != nil {
  28. fmt.Println("Error:", err)
  29. os.Exit(-1)
  30. }
  31. ossclient = client
  32. log.Info("InitOss", zap.Any("duration", time.Since(now).Seconds()))
  33. }
  34. func OssGetObject(objectName, id string) string {
  35. util.Catch()
  36. // 获取存储空间。
  37. bucket, err := ossclient.Bucket(config.Conf.DB.Oss.BucketName)
  38. if err != nil {
  39. return ""
  40. }
  41. // 下载文件到流。
  42. body, err := bucket.GetObject(objectName)
  43. if err != nil {
  44. //log.Info("OssGetObject", zap.String("key", objectName), zap.String("id", id))
  45. //log.Info("OssGetObject", zap.Error(err))
  46. return ""
  47. }
  48. defer body.Close()
  49. data, err := ioutil.ReadAll(body)
  50. if err != nil {
  51. log.Info("OssGetObject", zap.Error(err))
  52. return ""
  53. }
  54. return string(data)
  55. }
  56. func OssObjExists(bname, fid string) bool {
  57. util.Catch()
  58. // 获取存储空间。
  59. bucket, err := ossclient.Bucket(bname)
  60. if err != nil {
  61. fmt.Println("Error:", err)
  62. }
  63. // 判断文件是否存在。
  64. isExist, err := bucket.IsObjectExist(fid)
  65. if err != nil {
  66. fmt.Println("Error:", err)
  67. }
  68. return isExist
  69. }