upload.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package upload
  2. import (
  3. "mime/multipart"
  4. "github.com/flipped-aurora/gin-vue-admin/server/global"
  5. )
  6. // OSS 对象存储接口
  7. // Author [SliverHorn](https://github.com/SliverHorn)
  8. // Author [ccfish86](https://github.com/ccfish86)
  9. type OSS interface {
  10. UploadFile(file *multipart.FileHeader) (string, string, error)
  11. DeleteFile(key string) error
  12. }
  13. // NewOss OSS的实例化方法
  14. // Author [SliverHorn](https://github.com/SliverHorn)
  15. // Author [ccfish86](https://github.com/ccfish86)
  16. func NewOss() OSS {
  17. switch global.GVA_CONFIG.System.OssType {
  18. case "local":
  19. return &Local{}
  20. case "qiniu":
  21. return &Qiniu{}
  22. case "tencent-cos":
  23. return &TencentCOS{}
  24. case "aliyun-oss":
  25. return &AliyunOSS{}
  26. case "huawei-obs":
  27. return HuaWeiObs
  28. case "aws-s3":
  29. return &AwsS3{}
  30. case "cloudflare-r2":
  31. return &CloudflareR2{}
  32. case "minio":
  33. minioClient, err := GetMinio(global.GVA_CONFIG.Minio.Endpoint, global.GVA_CONFIG.Minio.AccessKeyId, global.GVA_CONFIG.Minio.AccessKeySecret, global.GVA_CONFIG.Minio.BucketName, global.GVA_CONFIG.Minio.UseSSL)
  34. if err != nil {
  35. global.GVA_LOG.Warn("你配置了使用minio,但是初始化失败,请检查minio可用性或安全配置: " + err.Error())
  36. panic("minio初始化失败") // 建议这样做,用户自己配置了minio,如果报错了还要把服务开起来,使用起来也很危险
  37. }
  38. return minioClient
  39. default:
  40. return &Local{}
  41. }
  42. }