diff --git a/api/handler/mj_handler.go b/api/handler/mj_handler.go index 445fd64e..522008b2 100644 --- a/api/handler/mj_handler.go +++ b/api/handler/mj_handler.go @@ -100,7 +100,7 @@ func (h *MidJourneyHandler) Notify(c *gin.Context) { return } // download image - imgURL, err := h.uploaderManager.GetActiveService().PutImg(data.Image.URL) + imgURL, err := h.uploaderManager.GetUploadHandler().PutImg(data.Image.URL) if err != nil { logger.Error("error with download image: ", err) resp.SUCCESS(c) diff --git a/api/handler/upload_handler.go b/api/handler/upload_handler.go index 20a9c54a..e7cb7cfd 100644 --- a/api/handler/upload_handler.go +++ b/api/handler/upload_handler.go @@ -21,11 +21,11 @@ func NewUploadHandler(app *core.AppServer, db *gorm.DB, manager *oss.UploaderMan } func (h *UploadHandler) Upload(c *gin.Context) { - fileURL, err := h.uploaderManager.GetActiveService().PutFile(c, "file") + fileURL, err := h.uploaderManager.GetUploadHandler().PutFile(c, "file") if err != nil { resp.ERROR(c, err.Error()) return } - + resp.SUCCESS(c, fileURL) } diff --git a/api/service/oss/uploader_manager.go b/api/service/oss/uploader_manager.go index 7650531c..25732a46 100644 --- a/api/service/oss/uploader_manager.go +++ b/api/service/oss/uploader_manager.go @@ -6,8 +6,7 @@ import ( ) type UploaderManager struct { - active string - uploadServices map[string]Uploader + handler Uploader } const Local = "LOCAL" @@ -15,27 +14,29 @@ const Minio = "MINIO" const QiNiu = "QINIU" func NewUploaderManager(config *types.AppConfig) (*UploaderManager, error) { - services := make(map[string]Uploader) - if config.OSS.Minio.AccessKey != "" { - minioService, err := NewMinioService(config) - if err != nil { - return nil, err - } - services[Minio] = minioService - } - if config.OSS.Local.BasePath != "" { - services[Local] = NewLocalStorageService(config) - } - if config.OSS.QiNiu.AccessKey != "" { - services[QiNiu] = NewQiNiuService(config) - } active := Local if config.OSS.Active != "" { active = strings.ToUpper(config.OSS.Active) } - return &UploaderManager{uploadServices: services, active: active}, nil + var handler Uploader + switch active { + case Local: + handler = NewLocalStorageService(config) + break + case Minio: + service, err := NewMinioService(config) + if err != nil { + return nil, err + } + handler = service + break + case QiNiu: + handler = NewQiNiuService(config) + } + + return &UploaderManager{handler: handler}, nil } -func (m *UploaderManager) GetActiveService() Uploader { - return m.uploadServices[m.active] +func (m *UploaderManager) GetUploadHandler() Uploader { + return m.handler }