Jelajahi Sumber

新增亚马逊s3,oss上传代码优化

hsun 1 tahun lalu
induk
melakukan
7d7cf03398

+ 7 - 1
controllers/banner.go

@@ -59,7 +59,13 @@ func (this *BannerController) Upload() {
 	//	return
 	//}
 
-	resourceUrl, err = services.Upload2S3(fileName, fpath)
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	resourceUrl, err = ossClient.UploadFile(fileName, fpath, "")
 	if err != nil {
 		br.Msg = "文件上传失败"
 		br.ErrMsg = "文件上传失败,Err:" + err.Error()

+ 28 - 14
controllers/cloud_disk.go

@@ -584,21 +584,35 @@ func (this *CloudDiskController) ResourceUpload() {
 
 	resourceUrl := ``
 	//上传到阿里云 和 minio
-	if utils.ObjectStorageClient == "minio" {
-		resourceUrl, e = services.UploadMinIoToDir(ossFileName, filePath, ossDir, "")
-		if e != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败, Err:" + e.Error()
-			return
-		}
-	} else {
-		resourceUrl, e = services.UploadAliyunToDir(ossFileName, filePath, ossDir, "")
-		if e != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败, Err:" + e.Error()
-			return
-		}
+	//if utils.ObjectStorageClient == "minio" {
+	//	resourceUrl, e = services.UploadMinIoToDir(ossFileName, filePath, ossDir, "")
+	//	if e != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败, Err:" + e.Error()
+	//		return
+	//	}
+	//} else {
+	//	resourceUrl, e = services.UploadAliyunToDir(ossFileName, filePath, ossDir, "")
+	//	if e != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败, Err:" + e.Error()
+	//		return
+	//	}
+	//}
+	savePath := ossDir + time.Now().Format("200601/20060102/") + ossFileName
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	resourceUrl, e = ossClient.UploadFile(ossFileName, filePath, savePath)
+	if e != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + e.Error()
+		return
 	}
+
 	// 新增云盘资源
 	extMap := services.GetCloudDiskResourceFileTypeExtMap()
 	resourceIcon := extMap[ext]

+ 31 - 19
controllers/data_manage/chart_info.go

@@ -2183,7 +2183,7 @@ func (this *ChartInfoController) ChartInfoBase64Upload() {
 		}
 	}
 
-	var saveToOssPath string
+	//var saveToOssPath string
 	randStr := utils.GetRandStringNoSpecialChar(28)
 	var fileName, outFileName string
 	fileName = randStr + ".txt"
@@ -2229,27 +2229,39 @@ func (this *ChartInfoController) ChartInfoBase64Upload() {
 		os.Remove(fileName)
 	}()
 
-	saveToOssPath = uploadDir + time.Now().Format("200601/20060102/")
-	saveToOssPath += outFileName
+	//saveToOssPath = uploadDir + time.Now().Format("200601/20060102/")
+	//saveToOssPath += outFileName
 
 	//上传到阿里云 和 minio
 	resourceUrl := ``
-	if utils.ObjectStorageClient == "minio" {
-		err = services.UploadFileToMinIo("", outFileName, saveToOssPath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		resourceUrl = utils.MinIoImghost + saveToOssPath
-	} else {
-		err = services.UploadFileToAliyun("", outFileName, saveToOssPath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		resourceUrl = utils.Imghost + saveToOssPath
+	//if utils.ObjectStorageClient == "minio" {
+	//	err = services.UploadFileToMinIo("", outFileName, saveToOssPath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	resourceUrl = utils.MinIoImghost + saveToOssPath
+	//} else {
+	//	err = services.UploadFileToAliyun("", outFileName, saveToOssPath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	resourceUrl = utils.Imghost + saveToOssPath
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	resourceUrl, err = ossClient.UploadFile(outFileName, outFileName, "")
+	if err != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+		return
 	}
 
 	resp.ResourceUrl = resourceUrl

+ 32 - 19
controllers/data_manage/future_good/future_good_chart_info.go

@@ -2359,7 +2359,7 @@ func (this *FutureGoodChartInfoController) ChartInfoBase64Upload() {
 		}
 	}
 
-	var saveToOssPath string
+	//var saveToOssPath string
 	randStr := utils.GetRandStringNoSpecialChar(28)
 	var fileName, outFileName string
 	fileName = randStr + ".txt"
@@ -2405,27 +2405,40 @@ func (this *FutureGoodChartInfoController) ChartInfoBase64Upload() {
 		os.Remove(fileName)
 	}()
 
-	saveToOssPath = uploadDir + time.Now().Format("200601/20060102/")
-	saveToOssPath += outFileName
+	//saveToOssPath = uploadDir + time.Now().Format("200601/20060102/")
+	//saveToOssPath += outFileName
 	//上传到阿里云 和 minio
 	resourceUrl := ``
-	if utils.ObjectStorageClient == "minio" {
-		err = services.UploadFileToMinIo("", outFileName, saveToOssPath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		resourceUrl = utils.MinIoImghost + saveToOssPath
-	} else {
-		err = services.UploadFileToAliyun("", outFileName, saveToOssPath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		resourceUrl = utils.Imghost + saveToOssPath
+	//if utils.ObjectStorageClient == "minio" {
+	//	err = services.UploadFileToMinIo("", outFileName, saveToOssPath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	resourceUrl = utils.MinIoImghost + saveToOssPath
+	//} else {
+	//	err = services.UploadFileToAliyun("", outFileName, saveToOssPath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	resourceUrl = utils.Imghost + saveToOssPath
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
 	}
+	resourceUrl, err = ossClient.UploadFile(outFileName, outFileName, "")
+	if err != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+		return
+	}
+
 	resp.ResourceUrl = resourceUrl
 	resp.Source = "convert"
 	//resp.CacheKey = imgDataKey

+ 28 - 16
controllers/ppt_english.go

@@ -539,22 +539,34 @@ func (this *PptEnglishController) PptUpload() {
 
 	//上传到阿里云 和 minio
 	pptxUrl := ``
-	if utils.ObjectStorageClient == "minio" {
-		err = services.UploadFileToMinIo("", fpath, savePptxToOssPath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		pptxUrl = utils.MinIoImghost + savePptxToOssPath
-	} else {
-		err = services.UploadFileToAliyun("", fpath, savePptxToOssPath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		pptxUrl = utils.Imghost + savePptxToOssPath
+	//if utils.ObjectStorageClient == "minio" {
+	//	err = services.UploadFileToMinIo("", fpath, savePptxToOssPath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	pptxUrl = utils.MinIoImghost + savePptxToOssPath
+	//} else {
+	//	err = services.UploadFileToAliyun("", fpath, savePptxToOssPath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	pptxUrl = utils.Imghost + savePptxToOssPath
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	pptxUrl, err = ossClient.UploadFile("", fpath, savePptxToOssPath)
+	if err != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+		return
 	}
 
 	defer func() {

+ 28 - 16
controllers/ppt_v2.go

@@ -540,22 +540,34 @@ func (this *PptV2Controller) PptUpload() {
 
 	//上传到阿里云 和 minio
 	pptxUrl := ``
-	if utils.ObjectStorageClient == "minio" {
-		err = services.UploadFileToMinIo("", fpath, savePptxToOssPath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		pptxUrl = utils.MinIoImghost + savePptxToOssPath
-	} else {
-		err = services.UploadFileToAliyun("", fpath, savePptxToOssPath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		pptxUrl = utils.Imghost + savePptxToOssPath
+	//if utils.ObjectStorageClient == "minio" {
+	//	err = services.UploadFileToMinIo("", fpath, savePptxToOssPath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	pptxUrl = utils.MinIoImghost + savePptxToOssPath
+	//} else {
+	//	err = services.UploadFileToAliyun("", fpath, savePptxToOssPath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	pptxUrl = utils.Imghost + savePptxToOssPath
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	pptxUrl, err = ossClient.UploadFile("", fpath, savePptxToOssPath)
+	if err != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+		return
 	}
 
 	defer func() {

+ 46 - 24
controllers/report.go

@@ -929,20 +929,32 @@ func (this *ReportController) Upload() {
 
 	resourceUrl := ``
 	//上传到阿里云 和 minio
-	if utils.ObjectStorageClient == "minio" {
-		resourceUrl, err = services.UploadImgToMinIo(fileName, fpath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-	} else {
-		resourceUrl, err = services.UploadAliyunV2(fileName, fpath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
+	//if utils.ObjectStorageClient == "minio" {
+	//	resourceUrl, err = services.UploadImgToMinIo(fileName, fpath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//} else {
+	//	resourceUrl, err = services.UploadAliyunV2(fileName, fpath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	resourceUrl, err = ossClient.UploadFile(fileName, fpath, "")
+	if err != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+		return
 	}
 
 	defer func() {
@@ -1243,16 +1255,26 @@ func (this *ReportUploadCommonController) UploadImg() {
 	}
 	resourceUrl := ``
 	//上传到阿里云 和 minio
-	if utils.ObjectStorageClient == "minio" {
-		resourceUrl, err = services.UploadImgToMinIo(fileName, fpath)
-		if err != nil {
-			return
-		}
-	} else {
-		resourceUrl, err = services.UploadAliyunV2(fileName, fpath)
-		if err != nil {
-			return
-		}
+	//if utils.ObjectStorageClient == "minio" {
+	//	resourceUrl, err = services.UploadImgToMinIo(fileName, fpath)
+	//	if err != nil {
+	//		return
+	//	}
+	//} else {
+	//	resourceUrl, err = services.UploadAliyunV2(fileName, fpath)
+	//	if err != nil {
+	//		return
+	//	}
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		err = fmt.Errorf("初始化OSS服务失败")
+		return
+	}
+	resourceUrl, err = ossClient.UploadFile(fileName, fpath, "")
+	if err != nil {
+		err = fmt.Errorf("文件上传失败, Err: %s", err.Error())
+		return
 	}
 
 	defer func() {

+ 183 - 104
controllers/resource.go

@@ -60,20 +60,32 @@ func (this *ResourceController) Upload() {
 	}
 	resourceUrl := ``
 	//上传到阿里云 和 minio
-	if utils.ObjectStorageClient == "minio" {
-		resourceUrl, err = services.UploadImgToMinIo(fileName, fpath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-	} else {
-		resourceUrl, err = services.UploadAliyunV2(fileName, fpath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
+	//if utils.ObjectStorageClient == "minio" {
+	//	resourceUrl, err = services.UploadImgToMinIo(fileName, fpath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//} else {
+	//	resourceUrl, err = services.UploadAliyunV2(fileName, fpath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	resourceUrl, err = ossClient.UploadFile(fileName, fpath, "")
+	if err != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+		return
 	}
 
 	defer func() {
@@ -237,28 +249,41 @@ func (this *ResourceController) VideoUpload() {
 	utils.FileLog.Info("start update oss ")
 	utils.FileLog.Info("%s:", time.Now().Format(utils.FormatDateTime))
 
-	savePath := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
-	savePath += fileName
+	//savePath := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
+	//savePath += fileName
 
 	//上传到阿里云 和 minio
 	resourceUrl := ``
-	if utils.ObjectStorageClient == "minio" {
-		err = services.UploadVideoToMinIo(fileName, fpath, savePath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		resourceUrl = utils.MinIoImghost + savePath
-	} else {
-		err = services.UploadVideoAliyun(fileName, fpath, savePath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		resourceUrl = utils.Imghost + savePath
+	//if utils.ObjectStorageClient == "minio" {
+	//	err = services.UploadVideoToMinIo(fileName, fpath, savePath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	resourceUrl = utils.MinIoImghost + savePath
+	//} else {
+	//	err = services.UploadVideoAliyun(fileName, fpath, savePath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	resourceUrl = utils.Imghost + savePath
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	resourceUrl, err = ossClient.UploadFile(fileName, fpath, "")
+	if err != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+		return
 	}
+
 	utils.FileLog.Info("%s:", time.Now().Format(utils.FormatDateTime))
 	utils.FileLog.Info("end update oss ")
 
@@ -414,26 +439,38 @@ func (this *ResourceController) VoiceUpload() {
 	utils.FileLog.Info("start update oss ")
 	utils.FileLog.Info(fmt.Sprintf("%s:", time.Now().Format(utils.FormatDateTime)))
 
-	savePath := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
-	savePath += fileName
+	//savePath := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
+	//savePath += fileName
 	//上传到阿里云 和 minio
 	resourceUrl := ``
-	if utils.ObjectStorageClient == "minio" {
-		err = services.UploadVideoToMinIo(fileName, fpath, savePath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		resourceUrl = utils.MinIoImghost + savePath
-	} else {
-		err = services.UploadVideoAliyun(fileName, fpath, savePath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		resourceUrl = utils.Imghost + savePath
+	//if utils.ObjectStorageClient == "minio" {
+	//	err = services.UploadVideoToMinIo(fileName, fpath, savePath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	resourceUrl = utils.MinIoImghost + savePath
+	//} else {
+	//	err = services.UploadVideoAliyun(fileName, fpath, savePath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	resourceUrl = utils.Imghost + savePath
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	resourceUrl, err = ossClient.UploadFile(fileName, fpath, "")
+	if err != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+		return
 	}
 	utils.FileLog.Info(fmt.Sprintf("%s:", time.Now().Format(utils.FormatDateTime)))
 	utils.FileLog.Info("end update oss ")
@@ -582,22 +619,34 @@ func (this *ResourceController) UploadImageBase64() {
 
 	//上传到阿里云 和 minio
 	resourceUrl := ``
-	if utils.ObjectStorageClient == "minio" {
-		err = services.UploadFileToMinIo(fileName, fpath, savePath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		resourceUrl = utils.MinIoImghost + savePath
-	} else {
-		err = services.UploadFileToAliyun(fileName, fpath, savePath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-		resourceUrl = utils.Imghost + savePath
+	//if utils.ObjectStorageClient == "minio" {
+	//	err = services.UploadFileToMinIo(fileName, fpath, savePath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	resourceUrl = utils.MinIoImghost + savePath
+	//} else {
+	//	err = services.UploadFileToAliyun(fileName, fpath, savePath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	resourceUrl = utils.Imghost + savePath
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	resourceUrl, err = ossClient.UploadFile(fileName, fpath, savePath)
+	if err != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+		return
 	}
 	utils.FileLog.Info("%s:", time.Now().Format(utils.FormatDateTime))
 	utils.FileLog.Info("end update oss ")
@@ -723,20 +772,32 @@ func (this *ResourceController) UploadV2() {
 	}
 	resourceUrl := ``
 	//上传到阿里云 和 minio
-	if utils.ObjectStorageClient == "minio" {
-		resourceUrl, err = services.UploadImgToMinIo(fileName, fpath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-	} else {
-		resourceUrl, err = services.UploadAliyunV2(fileName, fpath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
+	//if utils.ObjectStorageClient == "minio" {
+	//	resourceUrl, err = services.UploadImgToMinIo(fileName, fpath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//} else {
+	//	resourceUrl, err = services.UploadAliyunV2(fileName, fpath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	resourceUrl, err = ossClient.UploadFile(fileName, fpath, "")
+	if err != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+		return
 	}
 
 	defer func() {
@@ -775,29 +836,47 @@ func (this *ResourceController) OssSTSToken() {
 		this.ServeJSON()
 	}()
 
-	source, _ := this.GetInt("StorageSource")
-
-	if source == utils.STORAGESOURCE_OSS {
-		resp, err := services.GetOssSTSToken()
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取STSToken失败, Err: " + err.Error()
-			return
-		}
-		br.Data = resp
-		br.Msg = "获取成功"
-		br.Ret = 200
-		br.Success = true
-	} else if source == utils.STORAGESOURCE_MINIO {
-		resp, err := services.GetMinIOSTSToken()
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取STSToken失败, Err: " + err.Error()
-			return
-		}
-		br.Data = resp
-		br.Msg = "获取成功"
-		br.Ret = 200
-		br.Success = true
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
 	}
+	resp, e := ossClient.GetUploadToken()
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取OSS上传Token失败, Err: " + e.Error()
+		return
+	}
+
+	br.Data = resp
+	br.Msg = "获取成功"
+	br.Ret = 200
+	br.Success = true
+
+	//source, _ := this.GetInt("StorageSource")
+	//
+	//if source == utils.STORAGESOURCE_OSS {
+	//	resp, err := services.GetOssSTSToken()
+	//	if err != nil {
+	//		br.Msg = "获取失败"
+	//		br.ErrMsg = "获取STSToken失败, Err: " + err.Error()
+	//		return
+	//	}
+	//	br.Data = resp
+	//	br.Msg = "获取成功"
+	//	br.Ret = 200
+	//	br.Success = true
+	//} else if source == utils.STORAGESOURCE_MINIO {
+	//	resp, err := services.GetMinIOSTSToken()
+	//	if err != nil {
+	//		br.Msg = "获取失败"
+	//		br.ErrMsg = "获取STSToken失败, Err: " + err.Error()
+	//		return
+	//	}
+	//	br.Data = resp
+	//	br.Msg = "获取成功"
+	//	br.Ret = 200
+	//	br.Success = true
+	//}
 }

+ 27 - 15
controllers/smart_report/smart_report.go

@@ -1235,24 +1235,36 @@ func (this *SmartReportController) VoiceUpload() {
 	defer func() {
 		_ = os.Remove(filePath)
 	}()
-	ossDir := "static/audio/"
+	//ossDir := "static/audio/"
 
 	resourceUrl := ``
 	//上传到阿里云 和 minio
-	if utils.ObjectStorageClient == "minio" {
-		resourceUrl, e = services.UploadMinIoToDir(ossFileName, filePath, ossDir, "")
-		if e != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败, Err:" + e.Error()
-			return
-		}
-	} else {
-		resourceUrl, e = services.UploadAliyunToDir(ossFileName, filePath, ossDir, "")
-		if e != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败, Err:" + e.Error()
-			return
-		}
+	//if utils.ObjectStorageClient == "minio" {
+	//	resourceUrl, e = services.UploadMinIoToDir(ossFileName, filePath, ossDir, "")
+	//	if e != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败, Err:" + e.Error()
+	//		return
+	//	}
+	//} else {
+	//	resourceUrl, e = services.UploadAliyunToDir(ossFileName, filePath, ossDir, "")
+	//	if e != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败, Err:" + e.Error()
+	//		return
+	//	}
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	resourceUrl, e = ossClient.UploadFile(ossFileName, filePath, "")
+	if e != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + e.Error()
+		return
 	}
 
 	resource := new(models.Resource)

+ 26 - 14
controllers/voice.go

@@ -76,20 +76,32 @@ func (this *VoiceController) Upload() {
 
 	resourceUrl := ``
 	//上传到阿里云 和 minio
-	if utils.ObjectStorageClient == "minio" {
-		resourceUrl, err = services.UploadAudioToMinIo(fileName, fpath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
-	} else {
-		resourceUrl, err = services.UploadAudioAliyun(fileName, fpath)
-		if err != nil {
-			br.Msg = "文件上传失败"
-			br.ErrMsg = "文件上传失败,Err:" + err.Error()
-			return
-		}
+	//if utils.ObjectStorageClient == "minio" {
+	//	resourceUrl, err = services.UploadAudioToMinIo(fileName, fpath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//} else {
+	//	resourceUrl, err = services.UploadAudioAliyun(fileName, fpath)
+	//	if err != nil {
+	//		br.Msg = "文件上传失败"
+	//		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+	//		return
+	//	}
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	resourceUrl, err = ossClient.UploadFile(fileName, fpath, "")
+	if err != nil {
+		br.Msg = "文件上传失败"
+		br.ErrMsg = "文件上传失败,Err:" + err.Error()
+		return
 	}
 
 	defer func() {

+ 67 - 17
services/aws_s3.go

@@ -9,25 +9,68 @@ import (
 	"github.com/aws/aws-sdk-go/aws/session"
 	"github.com/aws/aws-sdk-go/service/s3"
 	"io/ioutil"
+	"time"
 )
 
-func Upload2S3(fileName, filePath string) (resourceUrl string, err error) {
+type OssClient interface {
+	UploadFile(string, string, string) (string, error)
+	GetUploadToken() (OssToken, error)
+}
+
+func NewOssClient() OssClient {
+	switch utils.ObjectStorageClient {
+	case utils.STORAGESOURCE_MINIO_NAME:
+		return new(MinioOss)
+	case utils.STORAGESOURCE_S3_NAME:
+		return new(S3Oss)
+	default:
+		// 默认使用阿里云OSS
+		return new(AliOss)
+	}
+}
+
+// OssToken 此处为了兼容前端那边所以有重复的
+type OssToken struct {
+	AccessKeyId string
+	SecretKeyId string
+	RegionId    string
+	Bucketname  string
+	Endpoint    string
+	ImgHost     string
+	UseSSL      string
+	Port        string
+	//AccessKeyId     string
+	AccessKeySecret string
+	SecurityToken   string
+	ExpiredTime     string
+	//RegionId        string
+	//Bucketname      string
+	//Endpoint        string
+	Imghost string
+}
+
+type S3Oss struct{}
+
+func (m *S3Oss) UploadFile(fileName, localFile, savePath string) (resourceUrl string, err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err.Error())
 		}
 	}()
 
-	// 替换为你的阿里云OSS Endpoint、access_key和access_key_secret
-	endpoint := utils.Endpoint
-	accessKey := utils.AccessKeyId
-	secretKey := utils.AccessKeySecret
+	endpoint := utils.S3Endpoint
+	accessKey := utils.S3AccessKeyId
+	secretKey := utils.S3AccessKeySecret
+	region := utils.S3Region
+	bucketName := utils.S3BucketName
+	uploadDir := utils.S3UploadDir
+	resourceHost := utils.S3Host
 
 	// 创建AWS会话
 	sess, e := session.NewSession(&aws.Config{
-		Region:      aws.String("oss-cn-shanghai"), // 替换为MinIO的region
-		Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),
-		Endpoint:    aws.String(endpoint),
+		Region:           aws.String(region),
+		Credentials:      credentials.NewStaticCredentials(accessKey, secretKey, ""),
+		Endpoint:         aws.String(endpoint),
 		S3ForcePathStyle: aws.Bool(false),
 	})
 	if e != nil {
@@ -38,20 +81,17 @@ func Upload2S3(fileName, filePath string) (resourceUrl string, err error) {
 	// 创建S3服务客户端
 	client := s3.New(sess)
 
-	// 替换为你的S3桶名和文件路径
-	bucketName := utils.Bucketname
-	//filePath := "/path/to/your/file.txt"
-
 	// 读取文件内容
-	fileContent, e := ioutil.ReadFile(filePath)
+	fileContent, e := ioutil.ReadFile(localFile)
 	if e != nil {
 		err = fmt.Errorf("read file err: %s", e.Error())
 		return
 	}
 
-	path := utils.UploadDir + "test/"
-	path += fileName
-	// 将文件内容上传到MinIO
+	path := savePath
+	if savePath == "" {
+		path = uploadDir + time.Now().Format("200601/20060102/") + fileName
+	}
 	_, e = client.PutObject(&s3.PutObjectInput{
 		Bucket: aws.String(bucketName),
 		Key:    aws.String(path),
@@ -61,7 +101,17 @@ func Upload2S3(fileName, filePath string) (resourceUrl string, err error) {
 		err = fmt.Errorf("put object err: %s", e.Error())
 		return
 	}
-	resourceUrl = utils.Imghost + path
+	resourceUrl = resourceHost + path
 	fmt.Println(resourceUrl)
 	return
 }
+
+func (m *S3Oss) GetUploadToken() (token OssToken, err error) {
+	token.Endpoint = utils.Endpoint
+	token.AccessKeyId = utils.S3AccessKeyId
+	token.AccessKeySecret = utils.S3AccessKeySecret
+	token.RegionId = utils.S3Region
+	token.Bucketname = utils.Bucketname
+	token.ImgHost = utils.S3Host
+	return
+}

+ 15 - 4
services/data/excel/excel_op.go

@@ -262,14 +262,25 @@ func UpdateExcelInfoFileUrl(excelInfo *excelModel.ExcelInfo) {
 
 	var resourceUrl string
 	//上传到阿里云
-	if utils.ObjectStorageClient == "minio" {
-		resourceUrl, err = services.UploadImgToMinIo(fileName, downloadFilePath)
-	} else {
-		resourceUrl, err = services.UploadAliyunV2(fileName, downloadFilePath)
+	//if utils.ObjectStorageClient == "minio" {
+	//	resourceUrl, err = services.UploadImgToMinIo(fileName, downloadFilePath)
+	//} else {
+	//	resourceUrl, err = services.UploadAliyunV2(fileName, downloadFilePath)
+	//}
+	//if err != nil {
+	//	return
+	//}
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		err = fmt.Errorf("初始化OSS服务失败")
+		return
 	}
+	resourceUrl, err = ossClient.UploadFile(fileName, downloadFilePath, "")
 	if err != nil {
+		err = fmt.Errorf("文件上传失败, Err: %s", err.Error())
 		return
 	}
+
 	excelInfo.FileUrl = resourceUrl
 	err = excelInfo.Update([]string{"FileUrl"})
 }

+ 23 - 12
services/file.go

@@ -4,6 +4,7 @@ import (
 	"errors"
 	"eta/eta_api/models"
 	"eta/eta_api/utils"
+	"fmt"
 	"io"
 	"mime/multipart"
 	"os"
@@ -29,18 +30,28 @@ func UploadToOssAndFileName(fileMulti multipart.File, newFileName string) (resou
 	}
 
 	//上传到阿里云 和 minio
-	if utils.ObjectStorageClient == "minio" {
-		resourceUrl, err = UploadImgToMinIo(newFileName, fpath)
-		if err != nil {
-			err = errors.New("文件上传失败,Err:" + err.Error())
-			return
-		}
-	} else {
-		resourceUrl, err = UploadAliyunV2(newFileName, fpath)
-		if err != nil {
-			err = errors.New("文件上传失败,Err:" + err.Error())
-			return
-		}
+	//if utils.ObjectStorageClient == "minio" {
+	//	resourceUrl, err = UploadImgToMinIo(newFileName, fpath)
+	//	if err != nil {
+	//		err = errors.New("文件上传失败,Err:" + err.Error())
+	//		return
+	//	}
+	//} else {
+	//	resourceUrl, err = UploadAliyunV2(newFileName, fpath)
+	//	if err != nil {
+	//		err = errors.New("文件上传失败,Err:" + err.Error())
+	//		return
+	//	}
+	//}
+	ossClient := NewOssClient()
+	if ossClient == nil {
+		err = fmt.Errorf("初始化OSS服务失败")
+		return
+	}
+	resourceUrl, err = ossClient.UploadFile(newFileName, fpath, "")
+	if err != nil {
+		err = fmt.Errorf("文件上传失败, Err: %s", err.Error())
+		return
 	}
 
 	defer func() {

+ 344 - 288
services/minio.go

@@ -4,11 +4,9 @@ import (
 	"context"
 	"errors"
 	"eta/eta_api/utils"
-	"fmt"
 	"github.com/minio/minio-go/v7"
 	"github.com/minio/minio-go/v7/pkg/credentials"
 	"log"
-	"os"
 	"time"
 )
 
@@ -68,245 +66,347 @@ type Token struct {
 	Port        string
 }
 
-func UploadMinIo() {
-	ctx := context.Background()
-	endpoint := "8.136.199.33:9000/"
-	accessKeyID := "LfQ8uiJiLP7vLxjRrmNW"
-	secretAccessKey := "IszGVHsNicJMQxHC46cYFtbrOiapo0ynwOIJ6c2R"
-	useSSL := false
-
-	// Initialize minio client object.
-	minioClient, err := minio.New(endpoint, &minio.Options{
-		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
-		Secure: useSSL,
-	})
-	if err != nil {
-		log.Fatalln(err)
-	}
-
-	// Make a new bucket called mymusic.
-	bucketName := "etastatic"
-	location := "/"
-
-	err = minioClient.MakeBucket(ctx, bucketName, minio.MakeBucketOptions{Region: location})
-	if err != nil {
-		// Check to see if we already own this bucket (which happens if you run this twice)
-		exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
-		if errBucketExists == nil && exists {
-			log.Printf("We already own %s\n", bucketName)
-		} else {
-			log.Fatalln(err)
-		}
-	} else {
-		log.Printf("Successfully created %s\n", bucketName)
-	}
-	//buckets, err := minioClient.ListBuckets(ctx)
-	//for _, bucket := range buckets {
-	//	fmt.Println(bucket)
-	//}
-	// Upload the zip file
-	objectName := "1111.xlsx"
-	filePath := "/Users/xi/Desktop/1111.xlsx"
-	contentType := "application/xlsx"
-
-	// Upload the zip file with FPutObject
-	info, err := minioClient.FPutObject(ctx, bucketName, objectName, filePath, minio.PutObjectOptions{ContentType: contentType})
-	if err != nil {
-		log.Fatalln(err)
-	}
-
-	log.Printf("Successfully uploaded %s of size %d\n", objectName, info.Size)
-}
+//func UploadMinIo() {
+//	ctx := context.Background()
+//	endpoint := "8.136.199.33:9000/"
+//	accessKeyID := "LfQ8uiJiLP7vLxjRrmNW"
+//	secretAccessKey := "IszGVHsNicJMQxHC46cYFtbrOiapo0ynwOIJ6c2R"
+//	useSSL := false
+//
+//	// Initialize minio client object.
+//	minioClient, err := minio.New(endpoint, &minio.Options{
+//		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
+//		Secure: useSSL,
+//	})
+//	if err != nil {
+//		log.Fatalln(err)
+//	}
+//
+//	// Make a new bucket called mymusic.
+//	bucketName := "etastatic"
+//	location := "/"
+//
+//	err = minioClient.MakeBucket(ctx, bucketName, minio.MakeBucketOptions{Region: location})
+//	if err != nil {
+//		// Check to see if we already own this bucket (which happens if you run this twice)
+//		exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
+//		if errBucketExists == nil && exists {
+//			log.Printf("We already own %s\n", bucketName)
+//		} else {
+//			log.Fatalln(err)
+//		}
+//	} else {
+//		log.Printf("Successfully created %s\n", bucketName)
+//	}
+//	//buckets, err := minioClient.ListBuckets(ctx)
+//	//for _, bucket := range buckets {
+//	//	fmt.Println(bucket)
+//	//}
+//	// Upload the zip file
+//	objectName := "1111.xlsx"
+//	filePath := "/Users/xi/Desktop/1111.xlsx"
+//	contentType := "application/xlsx"
+//
+//	// Upload the zip file with FPutObject
+//	info, err := minioClient.FPutObject(ctx, bucketName, objectName, filePath, minio.PutObjectOptions{ContentType: contentType})
+//	if err != nil {
+//		log.Fatalln(err)
+//	}
+//
+//	log.Printf("Successfully uploaded %s of size %d\n", objectName, info.Size)
+//}
 
 // UploadImgToMinIo 图片上传
-func UploadImgToMinIo(fileName, filePath string) (string, error) {
-	if utils.MinIoAccessKeyId == `` || utils.MinIoAccessKeySecret == `` {
-		return "0", errors.New("MinIo信息未配置")
-	}
-
-	ctx := context.Background()
-	endpoint := utils.MinIoEndpoint
-	accessKeyID := utils.MinIoAccessKeyId
-	secretAccessKey := utils.MinIoAccessKeySecret
-	useSSL := false
-	if utils.MinIoUseSSL == "true" {
-		useSSL = true
-	}
-	minioClient, err := minio.New(endpoint, &minio.Options{
-		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
-		Secure: useSSL,
-	})
-	if err != nil {
-		log.Fatalln(err)
-		return "1", err
-	}
-	bucketName := utils.MinIoBucketname
-	// Check to see if we already own this bucket (which happens if you run this twice)
-	exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
-	if errBucketExists == nil && exists {
-		log.Printf("We already own %s\n", bucketName)
-	} else {
-		log.Fatalln(err)
-		return "2", err
-	}
-	path := utils.MinIoUploadDir + time.Now().Format("200601/20060102/")
-	path += fileName
-	// Upload the zip file with FPutObject
-	//contentType := "application/xlsx"
-	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
-	if err != nil {
-		log.Fatalln(err)
-		return "3", err
-	}
-
-	path = utils.MinIoImghost + path
-	return path, err
-}
+//func UploadImgToMinIo(fileName, filePath string) (string, error) {
+//	if utils.MinIoAccessKeyId == `` || utils.MinIoAccessKeySecret == `` {
+//		return "0", errors.New("MinIo信息未配置")
+//	}
+//
+//	ctx := context.Background()
+//	endpoint := utils.MinIoEndpoint
+//	accessKeyID := utils.MinIoAccessKeyId
+//	secretAccessKey := utils.MinIoAccessKeySecret
+//	useSSL := false
+//	if utils.MinIoUseSSL == "true" {
+//		useSSL = true
+//	}
+//	minioClient, err := minio.New(endpoint, &minio.Options{
+//		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
+//		Secure: useSSL,
+//	})
+//	if err != nil {
+//		log.Fatalln(err)
+//		return "1", err
+//	}
+//	bucketName := utils.MinIoBucketname
+//	// Check to see if we already own this bucket (which happens if you run this twice)
+//	exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
+//	if errBucketExists == nil && exists {
+//		log.Printf("We already own %s\n", bucketName)
+//	} else {
+//		log.Fatalln(err)
+//		return "2", err
+//	}
+//	path := utils.MinIoUploadDir + time.Now().Format("200601/20060102/")
+//	path += fileName
+//	// Upload the zip file with FPutObject
+//	//contentType := "application/xlsx"
+//	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
+//	if err != nil {
+//		log.Fatalln(err)
+//		return "3", err
+//	}
+//
+//	path = utils.MinIoImghost + path
+//	return path, err
+//}
 
 // UploadAudioToMinIo 音频上传
-func UploadAudioToMinIo(fileName, filePath string) (string, error) {
-	if utils.MinIoAccessKeyId == `` || utils.MinIoAccessKeySecret == `` {
-		return "0", errors.New("MinIo信息未配置")
-	}
-
-	ctx := context.Background()
-	endpoint := utils.MinIoEndpoint
-	accessKeyID := utils.MinIoAccessKeyId
-	secretAccessKey := utils.MinIoAccessKeySecret
-	useSSL := false
-	if utils.MinIoUseSSL == "true" {
-		useSSL = true
-	}
-	minioClient, err := minio.New(endpoint, &minio.Options{
-		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
-		Secure: useSSL,
-	})
-	if err != nil {
-		log.Fatalln(err)
-		return "1", err
-	}
-	bucketName := utils.MinIoBucketname
-	// Check to see if we already own this bucket (which happens if you run this twice)
-	exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
-	if errBucketExists == nil && exists {
-		log.Printf("We already own %s\n", bucketName)
-	} else {
-		log.Fatalln(err)
-		return "2", err
-	}
-
-	path := utils.MinIoUpload_Audio_Dir + time.Now().Format("200601/20060102/")
-	path += fileName
-
-	// Upload the zip file with FPutObject
-	//contentType := "application/xlsx"
-	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
-	if err != nil {
-		log.Fatalln(err)
-		return "3", err
-	}
-
-	path = utils.MinIoImghost + path
-	return path, err
-}
+//func UploadAudioToMinIo(fileName, filePath string) (string, error) {
+//	if utils.MinIoAccessKeyId == `` || utils.MinIoAccessKeySecret == `` {
+//		return "0", errors.New("MinIo信息未配置")
+//	}
+//
+//	ctx := context.Background()
+//	endpoint := utils.MinIoEndpoint
+//	accessKeyID := utils.MinIoAccessKeyId
+//	secretAccessKey := utils.MinIoAccessKeySecret
+//	useSSL := false
+//	if utils.MinIoUseSSL == "true" {
+//		useSSL = true
+//	}
+//	minioClient, err := minio.New(endpoint, &minio.Options{
+//		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
+//		Secure: useSSL,
+//	})
+//	if err != nil {
+//		log.Fatalln(err)
+//		return "1", err
+//	}
+//	bucketName := utils.MinIoBucketname
+//	// Check to see if we already own this bucket (which happens if you run this twice)
+//	exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
+//	if errBucketExists == nil && exists {
+//		log.Printf("We already own %s\n", bucketName)
+//	} else {
+//		log.Fatalln(err)
+//		return "2", err
+//	}
+//
+//	path := utils.MinIoUpload_Audio_Dir + time.Now().Format("200601/20060102/")
+//	path += fileName
+//
+//	// Upload the zip file with FPutObject
+//	//contentType := "application/xlsx"
+//	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
+//	if err != nil {
+//		log.Fatalln(err)
+//		return "3", err
+//	}
+//
+//	path = utils.MinIoImghost + path
+//	return path, err
+//}
 
 // UploadVideoToMinIo 视频上传
-func UploadVideoToMinIo(filename, filePath, savePath string) error {
-	if utils.MinIoAccessKeyId == `` || utils.MinIoAccessKeySecret == `` {
-		return errors.New("MinIo信息未配置")
-	}
-	defer func() {
-		os.Remove(filePath)
-	}()
-
-	ctx := context.Background()
-	endpoint := utils.MinIoEndpoint
-	accessKeyID := utils.MinIoAccessKeyId
-	secretAccessKey := utils.MinIoAccessKeySecret
-	useSSL := false
-	if utils.MinIoUseSSL == "true" {
-		useSSL = true
-	}
-	minioClient, err := minio.New(endpoint, &minio.Options{
-		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
-		Secure: useSSL,
-	})
-	if err != nil {
-		log.Fatalln(err)
-		return err
-	}
-	bucketName := utils.MinIoBucketname
-	// Check to see if we already own this bucket (which happens if you run this twice)
-	exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
-	if errBucketExists == nil && exists {
-		log.Printf("We already own %s\n", bucketName)
-	} else {
-		log.Fatalln(err)
-		return err
-	}
-
-	//path := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
-	//path += filename
-	_, err = minioClient.FPutObject(ctx, bucketName, savePath, filePath, minio.PutObjectOptions{})
-	if err != nil {
-		log.Fatalln(err)
-		return err
-	}
-	//path = utils.Imghost + path
-	//return path,err
-	return err
-}
+//func UploadVideoToMinIo(filename, filePath, savePath string) error {
+//	if utils.MinIoAccessKeyId == `` || utils.MinIoAccessKeySecret == `` {
+//		return errors.New("MinIo信息未配置")
+//	}
+//	defer func() {
+//		os.Remove(filePath)
+//	}()
+//
+//	ctx := context.Background()
+//	endpoint := utils.MinIoEndpoint
+//	accessKeyID := utils.MinIoAccessKeyId
+//	secretAccessKey := utils.MinIoAccessKeySecret
+//	useSSL := false
+//	if utils.MinIoUseSSL == "true" {
+//		useSSL = true
+//	}
+//	minioClient, err := minio.New(endpoint, &minio.Options{
+//		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
+//		Secure: useSSL,
+//	})
+//	if err != nil {
+//		log.Fatalln(err)
+//		return err
+//	}
+//	bucketName := utils.MinIoBucketname
+//	// Check to see if we already own this bucket (which happens if you run this twice)
+//	exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
+//	if errBucketExists == nil && exists {
+//		log.Printf("We already own %s\n", bucketName)
+//	} else {
+//		log.Fatalln(err)
+//		return err
+//	}
+//
+//	//path := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
+//	//path += filename
+//	_, err = minioClient.FPutObject(ctx, bucketName, savePath, filePath, minio.PutObjectOptions{})
+//	if err != nil {
+//		log.Fatalln(err)
+//		return err
+//	}
+//	//path = utils.Imghost + path
+//	//return path,err
+//	return err
+//}
 
 // UploadFileToMinIo 上传文件
-func UploadFileToMinIo(filename, filePath, savePath string) error {
-	if utils.MinIoAccessKeyId == `` || utils.MinIoAccessKeySecret == `` {
-		return errors.New("MinIo信息未配置")
-	}
-	defer func() {
-		os.Remove(filePath)
-	}()
-	ctx := context.Background()
-	endpoint := utils.MinIoEndpoint
-	accessKeyID := utils.MinIoAccessKeyId
-	secretAccessKey := utils.MinIoAccessKeySecret
-	useSSL := false
-	if utils.MinIoUseSSL == "true" {
-		useSSL = true
-	}
-	minioClient, err := minio.New(endpoint, &minio.Options{
-		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
-		Secure: useSSL,
-	})
-	if err != nil {
-		log.Fatalln(err)
-		return err
-	}
-	bucketName := utils.MinIoBucketname
-	// Check to see if we already own this bucket (which happens if you run this twice)
-	exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
-	if errBucketExists == nil && exists {
-		log.Printf("We already own %s\n", bucketName)
-	} else {
-		log.Fatalln(err)
-		return err
-	}
-	//path := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
-	//path += filename
-	_, err = minioClient.FPutObject(ctx, bucketName, savePath, filePath, minio.PutObjectOptions{})
-	if err != nil {
-		log.Fatalln(err)
-		return err
-	}
-	//path = utils.Imghost + path
-	//return path,err
-	return err
-}
+//func UploadFileToMinIo(filename, filePath, savePath string) error {
+//	if utils.MinIoAccessKeyId == `` || utils.MinIoAccessKeySecret == `` {
+//		return errors.New("MinIo信息未配置")
+//	}
+//	defer func() {
+//		os.Remove(filePath)
+//	}()
+//	ctx := context.Background()
+//	endpoint := utils.MinIoEndpoint
+//	accessKeyID := utils.MinIoAccessKeyId
+//	secretAccessKey := utils.MinIoAccessKeySecret
+//	useSSL := false
+//	if utils.MinIoUseSSL == "true" {
+//		useSSL = true
+//	}
+//	minioClient, err := minio.New(endpoint, &minio.Options{
+//		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
+//		Secure: useSSL,
+//	})
+//	if err != nil {
+//		log.Fatalln(err)
+//		return err
+//	}
+//	bucketName := utils.MinIoBucketname
+//	// Check to see if we already own this bucket (which happens if you run this twice)
+//	exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
+//	if errBucketExists == nil && exists {
+//		log.Printf("We already own %s\n", bucketName)
+//	} else {
+//		log.Fatalln(err)
+//		return err
+//	}
+//	//path := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
+//	//path += filename
+//	_, err = minioClient.FPutObject(ctx, bucketName, savePath, filePath, minio.PutObjectOptions{})
+//	if err != nil {
+//		log.Fatalln(err)
+//		return err
+//	}
+//	//path = utils.Imghost + path
+//	//return path,err
+//	return err
+//}
 
 // UploadMinIoToDir 上传至hzchart
-func UploadMinIoToDir(filename, filePath, uploadDir, fileDir string) (string, error) {
+//func UploadMinIoToDir(filename, filePath, uploadDir, fileDir string) (string, error) {
+//	if utils.MinIoAccessKeyId == `` || utils.MinIoAccessKeySecret == `` {
+//		return "0", errors.New("MinIo信息未配置")
+//	}
+//	ctx := context.Background()
+//	endpoint := utils.MinIoEndpoint
+//	accessKeyID := utils.MinIoAccessKeyId
+//	secretAccessKey := utils.MinIoAccessKeySecret
+//	useSSL := false
+//	if utils.MinIoUseSSL == "true" {
+//		useSSL = true
+//	}
+//	minioClient, err := minio.New(endpoint, &minio.Options{
+//		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
+//		Secure: useSSL,
+//	})
+//	if err != nil {
+//		log.Fatalln(err)
+//		return "1", err
+//	}
+//	bucketName := utils.MinIoBucketname
+//	// Check to see if we already own this bucket (which happens if you run this twice)
+//	exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
+//	if errBucketExists == nil && exists {
+//		log.Printf("We already own %s\n", bucketName)
+//	} else {
+//		log.Fatalln(err)
+//		return "2", err
+//	}
+//	if uploadDir == "" {
+//		uploadDir = utils.MinIoUploadDir
+//	}
+//	if fileDir == "" {
+//		fileDir = time.Now().Format("200601/20060102/")
+//	}
+//	path := uploadDir + fileDir
+//	path += filename
+//	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
+//	if err != nil {
+//		log.Fatalln(err)
+//		return "3", err
+//	}
+//	path = utils.MinIoImghost + path
+//	return path, err
+//}
+
+//func UploadImgToMinIoTest(fileName, filePath string) (string, error) {
+//	ctx := context.Background()
+//	endpoint := utils.Endpoint
+//	accessKeyID := utils.AccessKeyId
+//	secretAccessKey := utils.AccessKeySecret
+//	useSSL := false
+//	if utils.MinIoUseSSL == "true" {
+//		useSSL = true
+//	}
+//	minioClient, err := minio.New(endpoint, &minio.Options{
+//		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
+//		Secure: useSSL,
+//	})
+//	if err != nil {
+//		log.Fatalln(err)
+//		return "1", err
+//	}
+//	bucketName := utils.Bucketname
+//	// Check to see if we already own this bucket (which happens if you run this twice)
+//
+//	buckets, e := minioClient.ListBuckets(ctx)
+//	if e != nil {
+//		fmt.Println("ListBuckets: ", e.Error())
+//		return "", e
+//	}
+//	for k := range buckets {
+//		fmt.Println(k)
+//	}
+//
+//	exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
+//	fmt.Println("exists: ", exists)
+//	fmt.Println("errBucketExists: ", errBucketExists)
+//	if errBucketExists == nil && exists {
+//		log.Printf("We already own %s\n", bucketName)
+//	} else {
+//		log.Fatalln(err)
+//		return "2", err
+//	}
+//	path := utils.UploadDir + time.Now().Format("200601/20060102/")
+//	path += fileName
+//	// Upload the zip file with FPutObject
+//	//contentType := "application/xlsx"
+//	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
+//	if err != nil {
+//		log.Fatalln(err)
+//		return "3", err
+//	}
+//
+//	path = utils.Imghost + path
+//	return path, err
+//}
+
+type MinioOss struct{}
+
+// UploadFile 上传文件
+func (m *MinioOss) UploadFile(fileName, filePath, savePath string) (string, error) {
 	if utils.MinIoAccessKeyId == `` || utils.MinIoAccessKeySecret == `` {
 		return "0", errors.New("MinIo信息未配置")
 	}
+
 	ctx := context.Background()
 	endpoint := utils.MinIoEndpoint
 	accessKeyID := utils.MinIoAccessKeyId
@@ -324,7 +424,6 @@ func UploadMinIoToDir(filename, filePath, uploadDir, fileDir string) (string, er
 		return "1", err
 	}
 	bucketName := utils.MinIoBucketname
-	// Check to see if we already own this bucket (which happens if you run this twice)
 	exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
 	if errBucketExists == nil && exists {
 		log.Printf("We already own %s\n", bucketName)
@@ -332,71 +431,28 @@ func UploadMinIoToDir(filename, filePath, uploadDir, fileDir string) (string, er
 		log.Fatalln(err)
 		return "2", err
 	}
-	if uploadDir == "" {
-		uploadDir = utils.MinIoUploadDir
-	}
-	if fileDir == "" {
-		fileDir = time.Now().Format("200601/20060102/")
-	}
-	path := uploadDir + fileDir
-	path += filename
-	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
-	if err != nil {
-		log.Fatalln(err)
-		return "3", err
-	}
-	path = utils.MinIoImghost + path
-	return path, err
-}
 
-func UploadImgToMinIoTest(fileName, filePath string) (string, error) {
-	ctx := context.Background()
-	endpoint := utils.Endpoint
-	accessKeyID := utils.AccessKeyId
-	secretAccessKey := utils.AccessKeySecret
-	useSSL := false
-	if utils.MinIoUseSSL == "true" {
-		useSSL = true
-	}
-	minioClient, err := minio.New(endpoint, &minio.Options{
-		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
-		Secure: useSSL,
-	})
-	if err != nil {
-		log.Fatalln(err)
-		return "1", err
-	}
-	bucketName := utils.Bucketname
-	// Check to see if we already own this bucket (which happens if you run this twice)
-
-	buckets, e := minioClient.ListBuckets(ctx)
-	if e != nil {
-		fmt.Println("ListBuckets: ", e.Error())
-		return "", e
+	path := savePath
+	if savePath == "" {
+		path = utils.MinIoUploadDir + time.Now().Format("200601/20060102/") + fileName
 	}
-	for k := range buckets {
-		fmt.Println(k)
-	}
-
-	exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
-	fmt.Println("exists: ", exists)
-	fmt.Println("errBucketExists: ", errBucketExists)
-	if errBucketExists == nil && exists {
-		log.Printf("We already own %s\n", bucketName)
-	} else {
-		log.Fatalln(err)
-		return "2", err
-	}
-	path := utils.UploadDir + time.Now().Format("200601/20060102/")
-	path += fileName
-	// Upload the zip file with FPutObject
-	//contentType := "application/xlsx"
 	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
 	if err != nil {
 		log.Fatalln(err)
 		return "3", err
 	}
+	resourceUrl := utils.MinIoImghost + path
+	return resourceUrl, err
+}
 
-	path = utils.Imghost + path
-	return path, err
+func (m *MinioOss) GetUploadToken() (token OssToken, err error) {
+	token.AccessKeyId = utils.MinIoAccessKeyId
+	token.SecretKeyId = utils.MinIoAccessKeySecret
+	token.Endpoint = utils.MinIoEndpoint
+	token.ImgHost = utils.MinIoImghost
+	token.Bucketname = utils.MinIoBucketname
+	token.UseSSL = utils.MinIoUseSSL
+	token.RegionId = utils.MinIoRegion
+	token.Port = utils.MinIoPort
+	return
 }

+ 149 - 104
services/oss.go

@@ -4,8 +4,8 @@ import (
 	"encoding/json"
 	"errors"
 	"eta/eta_api/services/alarm_msg"
+	"fmt"
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
-	"os"
 	"time"
 
 	"eta/eta_api/utils"
@@ -13,104 +13,104 @@ import (
 )
 
 // UploadAliyunV2 图片上传到阿里云
-func UploadAliyunV2(filename, filepath string) (string, error) {
-	if utils.AccessKeyId == `` {
-		return "0", errors.New("阿里云信息未配置")
-	}
-	client, err := oss.New(utils.Endpoint, utils.AccessKeyId, utils.AccessKeySecret)
-	if err != nil {
-		return "1", err
-	}
-	bucket, err := client.Bucket(utils.Bucketname)
-	if err != nil {
-		return "2", err
-	}
-	path := utils.UploadDir + time.Now().Format("200601/20060102/")
-	path += filename
-	err = bucket.PutObjectFromFile(path, filepath)
-	if err != nil {
-		return "3", err
-	}
-	path = utils.Imghost + path
-	return path, err
-}
+//func UploadAliyunV2(filename, filepath string) (string, error) {
+//	if utils.AccessKeyId == `` {
+//		return "0", errors.New("阿里云信息未配置")
+//	}
+//	client, err := oss.New(utils.Endpoint, utils.AccessKeyId, utils.AccessKeySecret)
+//	if err != nil {
+//		return "1", err
+//	}
+//	bucket, err := client.Bucket(utils.Bucketname)
+//	if err != nil {
+//		return "2", err
+//	}
+//	path := utils.UploadDir + time.Now().Format("200601/20060102/")
+//	path += filename
+//	err = bucket.PutObjectFromFile(path, filepath)
+//	if err != nil {
+//		return "3", err
+//	}
+//	path = utils.Imghost + path
+//	return path, err
+//}
 
 // UploadAudioAliyun 音频上传到阿里云
-func UploadAudioAliyun(filename, filepath string) (string, error) {
-	if utils.AccessKeyId == `` {
-		return "0", errors.New("阿里云信息未配置")
-	}
-	client, err := oss.New(utils.Endpoint, utils.AccessKeyId, utils.AccessKeySecret)
-	if err != nil {
-		return "1", err
-	}
-	bucket, err := client.Bucket(utils.Bucketname)
-	if err != nil {
-		return "2", err
-	}
-	path := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
-	path += filename
-	err = bucket.PutObjectFromFile(path, filepath)
-	if err != nil {
-		return "3", err
-	}
-	path = utils.Imghost + path
-	return path, err
-}
+//func UploadAudioAliyun(filename, filepath string) (string, error) {
+//	if utils.AccessKeyId == `` {
+//		return "0", errors.New("阿里云信息未配置")
+//	}
+//	client, err := oss.New(utils.Endpoint, utils.AccessKeyId, utils.AccessKeySecret)
+//	if err != nil {
+//		return "1", err
+//	}
+//	bucket, err := client.Bucket(utils.Bucketname)
+//	if err != nil {
+//		return "2", err
+//	}
+//	path := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
+//	path += filename
+//	err = bucket.PutObjectFromFile(path, filepath)
+//	if err != nil {
+//		return "3", err
+//	}
+//	path = utils.Imghost + path
+//	return path, err
+//}
 
 // UploadVideoAliyun 视频上传到阿里云
-func UploadVideoAliyun(filename, filepath, savePath string) error {
-	if utils.AccessKeyId == `` {
-		return errors.New("阿里云信息未配置")
-	}
-	defer func() {
-		os.Remove(filepath)
-	}()
-	client, err := oss.New(utils.Endpoint, utils.AccessKeyId, utils.AccessKeySecret)
-	if err != nil {
-		return err
-	}
-	bucket, err := client.Bucket(utils.Bucketname)
-	if err != nil {
-		return err
-	}
-	//path := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
-	//path += filename
-	err = bucket.PutObjectFromFile(savePath, filepath)
-	if err != nil {
-		return err
-	}
-	//path = utils.Imghost + path
-	//return path,err
-	return err
-}
+//func UploadVideoAliyun(filename, filepath, savePath string) error {
+//	if utils.AccessKeyId == `` {
+//		return errors.New("阿里云信息未配置")
+//	}
+//	defer func() {
+//		os.Remove(filepath)
+//	}()
+//	client, err := oss.New(utils.Endpoint, utils.AccessKeyId, utils.AccessKeySecret)
+//	if err != nil {
+//		return err
+//	}
+//	bucket, err := client.Bucket(utils.Bucketname)
+//	if err != nil {
+//		return err
+//	}
+//	//path := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
+//	//path += filename
+//	err = bucket.PutObjectFromFile(savePath, filepath)
+//	if err != nil {
+//		return err
+//	}
+//	//path = utils.Imghost + path
+//	//return path,err
+//	return err
+//}
 
 // UploadFileToAliyun 上传文件到阿里云
-func UploadFileToAliyun(filename, filepath, savePath string) error {
-	if utils.AccessKeyId == `` {
-		return errors.New("阿里云信息未配置")
-	}
-	defer func() {
-		os.Remove(filepath)
-	}()
-	client, err := oss.New(utils.Endpoint, utils.AccessKeyId, utils.AccessKeySecret)
-	if err != nil {
-		return err
-	}
-	bucket, err := client.Bucket(utils.Bucketname)
-	if err != nil {
-		return err
-	}
-	//path := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
-	//path += filename
-	err = bucket.PutObjectFromFile(savePath, filepath)
-	if err != nil {
-		return err
-	}
-	//path = utils.Imghost + path
-	//return path,err
-	return err
-}
+//func UploadFileToAliyun(filename, filepath, savePath string) error {
+//	if utils.AccessKeyId == `` {
+//		return errors.New("阿里云信息未配置")
+//	}
+//	defer func() {
+//		os.Remove(filepath)
+//	}()
+//	client, err := oss.New(utils.Endpoint, utils.AccessKeyId, utils.AccessKeySecret)
+//	if err != nil {
+//		return err
+//	}
+//	bucket, err := client.Bucket(utils.Bucketname)
+//	if err != nil {
+//		return err
+//	}
+//	//path := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
+//	//path += filename
+//	err = bucket.PutObjectFromFile(savePath, filepath)
+//	if err != nil {
+//		return err
+//	}
+//	//path = utils.Imghost + path
+//	//return path,err
+//	return err
+//}
 
 type STSToken struct {
 	AccessKeyId     string
@@ -223,7 +223,38 @@ func NewSTSToken() (item *STSToken, err error) {
 }
 
 // UploadAliyunToDir 上传至hzchart
-func UploadAliyunToDir(filename, filepath, uploadDir, fileDir string) (string, error) {
+//func UploadAliyunToDir(filename, filepath, uploadDir, fileDir string) (string, error) {
+//	if utils.AccessKeyId == `` {
+//		return "0", errors.New("阿里云信息未配置")
+//	}
+//	client, err := oss.New(utils.Endpoint, utils.AccessKeyId, utils.AccessKeySecret)
+//	if err != nil {
+//		return "1", err
+//	}
+//	bucket, err := client.Bucket(utils.Bucketname)
+//	if err != nil {
+//		return "2", err
+//	}
+//	if uploadDir == "" {
+//		uploadDir = utils.UploadDir
+//	}
+//	if fileDir == "" {
+//		fileDir = time.Now().Format("200601/20060102/")
+//	}
+//	path := uploadDir + fileDir
+//	path += filename
+//	err = bucket.PutObjectFromFile(path, filepath)
+//	if err != nil {
+//		return "3", err
+//	}
+//	path = utils.Imghost + path
+//	return path, err
+//}
+
+type AliOss struct{}
+
+// UploadFile 上传文件
+func (m *AliOss) UploadFile(fileName, filePath, savePath string) (string, error) {
 	if utils.AccessKeyId == `` {
 		return "0", errors.New("阿里云信息未配置")
 	}
@@ -235,18 +266,32 @@ func UploadAliyunToDir(filename, filepath, uploadDir, fileDir string) (string, e
 	if err != nil {
 		return "2", err
 	}
-	if uploadDir == "" {
-		uploadDir = utils.UploadDir
-	}
-	if fileDir == "" {
-		fileDir = time.Now().Format("200601/20060102/")
+
+	path := savePath
+	if savePath == "" {
+		path = utils.UploadDir + time.Now().Format("200601/20060102/") + fileName
 	}
-	path := uploadDir + fileDir
-	path += filename
-	err = bucket.PutObjectFromFile(path, filepath)
+	err = bucket.PutObjectFromFile(path, filePath)
 	if err != nil {
 		return "3", err
 	}
-	path = utils.Imghost + path
-	return path, err
+	resourceUrl := utils.Imghost + path
+	return resourceUrl, err
+}
+
+func (m *AliOss) GetUploadToken() (token OssToken, err error) {
+	stsToken, e := GetOssSTSToken()
+	if e != nil {
+		err = fmt.Errorf("GetOssSTSToken err: %s", e.Error())
+		return
+	}
+	token.AccessKeyId = stsToken.AccessKeyId
+	token.AccessKeySecret = stsToken.AccessKeySecret
+	token.SecurityToken = stsToken.SecurityToken
+	token.ExpiredTime = stsToken.ExpiredTime
+	token.RegionId = stsToken.RegionId
+	token.Bucketname = stsToken.Bucketname
+	token.Endpoint = stsToken.Endpoint
+	token.Imghost = stsToken.Imghost
+	return
 }

+ 45 - 26
services/report.go

@@ -638,23 +638,31 @@ func reportBase64ToImg(imageBase64 string) (resourceUrl string, err error) {
 	savePath += fileName
 
 	//上传到阿里云 和 minio
-	if utils.ObjectStorageClient == "minio" {
-		err = UploadFileToMinIo(fileName, fpath, savePath)
-		if err != nil {
-			err = errors.New("文件上传失败" + err.Error())
-			return
-		}
-		resourceUrl = utils.MinIoImghost + savePath
-	} else {
-		err = UploadFileToAliyun(fileName, fpath, savePath)
-		if err != nil {
-			err = errors.New("文件上传失败" + err.Error())
-			return
-		}
-		resourceUrl = utils.Imghost + savePath
+	//if utils.ObjectStorageClient == "minio" {
+	//	err = UploadFileToMinIo(fileName, fpath, savePath)
+	//	if err != nil {
+	//		err = errors.New("文件上传失败" + err.Error())
+	//		return
+	//	}
+	//	resourceUrl = utils.MinIoImghost + savePath
+	//} else {
+	//	err = UploadFileToAliyun(fileName, fpath, savePath)
+	//	if err != nil {
+	//		err = errors.New("文件上传失败" + err.Error())
+	//		return
+	//	}
+	//	resourceUrl = utils.Imghost + savePath
+	//}
+	ossClient := NewOssClient()
+	if ossClient == nil {
+		err = fmt.Errorf("初始化OSS服务失败")
+		return
+	}
+	resourceUrl, err = ossClient.UploadFile(fileName, fpath, savePath)
+	if err != nil {
+		err = fmt.Errorf("文件上传失败, Err: %s", err.Error())
+		return
 	}
-
-
 
 	item := new(models.Resource)
 	item.ResourceUrl = resourceUrl
@@ -876,16 +884,27 @@ func PcCreateAndUploadSunCode(scene, page string) (imgUrl string, err error) {
 	fileDir := "yb/suncode/"
 
 	//上传到阿里云 和 minio
-	if utils.ObjectStorageClient == "minio" {
-		imgUrl, err = UploadMinIoToDir(fileName, fpath, "", fileDir)
-		if err != nil {
-			return
-		}
-	} else {
-		imgUrl, err = UploadAliyunToDir(fileName, fpath, "", fileDir)
-		if err != nil {
-			return
-		}
+	//if utils.ObjectStorageClient == "minio" {
+	//	imgUrl, err = UploadMinIoToDir(fileName, fpath, "", fileDir)
+	//	if err != nil {
+	//		return
+	//	}
+	//} else {
+	//	imgUrl, err = UploadAliyunToDir(fileName, fpath, "", fileDir)
+	//	if err != nil {
+	//		return
+	//	}
+	//}
+	savePath := fileDir + time.Now().Format("200601/20060102/") + fileName
+	ossClient := NewOssClient()
+	if ossClient == nil {
+		err = fmt.Errorf("初始化OSS服务失败")
+		return
+	}
+	imgUrl, err = ossClient.UploadFile(fileName, fpath, savePath)
+	if err != nil {
+		err = fmt.Errorf("文件上传失败, Err: %s", err.Error())
+		return
 	}
 
 	if err != nil {

+ 44 - 25
services/video.go

@@ -100,18 +100,28 @@ func CreateVideo(report *models.ReportDetail) (err error) {
 
 	uploadUrl := ``
 	//上传到阿里云 和 minio
-	if utils.ObjectStorageClient == "minio" {
-		uploadUrl, err = UploadAudioToMinIo(saveName, savePath)
-		if err != nil {
-			err = errors.New("UploadAudioAliyun Err:" + err.Error())
-			return
-		}
-	} else {
-		uploadUrl, err = UploadAudioAliyun(saveName, savePath)
-		if err != nil {
-			err = errors.New("UploadAudioAliyun Err:" + err.Error())
-			return
-		}
+	//if utils.ObjectStorageClient == "minio" {
+	//	uploadUrl, err = UploadAudioToMinIo(saveName, savePath)
+	//	if err != nil {
+	//		err = errors.New("UploadAudioAliyun Err:" + err.Error())
+	//		return
+	//	}
+	//} else {
+	//	uploadUrl, err = UploadAudioAliyun(saveName, savePath)
+	//	if err != nil {
+	//		err = errors.New("UploadAudioAliyun Err:" + err.Error())
+	//		return
+	//	}
+	//}
+	ossClient := NewOssClient()
+	if ossClient == nil {
+		err = fmt.Errorf("初始化OSS服务失败")
+		return
+	}
+	uploadUrl, err = ossClient.UploadFile(saveName, savePath, "")
+	if err != nil {
+		err = fmt.Errorf("文件上传失败, Err: %s", err.Error())
+		return
 	}
 
 	fileBody, err := ioutil.ReadFile(savePath)
@@ -300,20 +310,29 @@ func CreateReportVideo(reportTitle, reportContent, reportTime string) (uploadUrl
 		time.Sleep(5 * time.Second)
 	}
 
-
 	//上传到阿里云 和 minio
-	if utils.ObjectStorageClient == "minio" {
-		uploadUrl, err = UploadAudioToMinIo(saveName, savePath)
-		if err != nil {
-			err = errors.New("UploadAudioAliyun Err:" + err.Error())
-			return
-		}
-	} else {
-		uploadUrl, err = UploadAudioAliyun(saveName, savePath)
-		if err != nil {
-			err = errors.New("UploadAudioAliyun Err:" + err.Error())
-			return
-		}
+	//if utils.ObjectStorageClient == "minio" {
+	//	uploadUrl, err = UploadAudioToMinIo(saveName, savePath)
+	//	if err != nil {
+	//		err = errors.New("UploadAudioAliyun Err:" + err.Error())
+	//		return
+	//	}
+	//} else {
+	//	uploadUrl, err = UploadAudioAliyun(saveName, savePath)
+	//	if err != nil {
+	//		err = errors.New("UploadAudioAliyun Err:" + err.Error())
+	//		return
+	//	}
+	//}
+	ossClient := NewOssClient()
+	if ossClient == nil {
+		err = fmt.Errorf("初始化OSS服务失败")
+		return
+	}
+	uploadUrl, err = ossClient.UploadFile(saveName, savePath, "")
+	if err != nil {
+		err = fmt.Errorf("文件上传失败, Err: %s", err.Error())
+		return
 	}
 
 	fileBody, err := ioutil.ReadFile(savePath)

+ 22 - 0
utils/config.go

@@ -213,6 +213,17 @@ var (
 	EtaSecret string
 )
 
+// S3配置
+var (
+	S3Endpoint        string
+	S3BucketName      string
+	S3UploadDir       string
+	S3AccessKeyId     string
+	S3AccessKeySecret string
+	S3Host            string
+	S3Region          string
+)
+
 func init() {
 	tmpRunMode, err := web.AppConfig.String("run_mode")
 	if err != nil {
@@ -471,6 +482,17 @@ func init() {
 		MinIoRegion = config["minio_region"]
 	}
 
+	// S3-OSS相关
+	{
+		S3Endpoint = config["s3_endpoint"]
+		S3BucketName = config["s3_bucket_name"]
+		S3Host = config["s3_host"]
+		S3AccessKeyId = config["s3_access_key_id"]
+		S3AccessKeySecret = config["s3_access_key_secret"]
+		S3UploadDir = config["s3_upload_dir"]
+		S3Region = config["s3_region"]
+	}
+
 	// 生成长图服务地址
 	PythonUrlReport2Img = config["python_url_report2img"]
 

+ 7 - 1
utils/constants.go

@@ -351,6 +351,12 @@ const (
 	STORAGESOURCE_MINIO = 2 //MinIo
 )
 
+const (
+	STORAGESOURCE_OSS_NAME   = "oss"
+	STORAGESOURCE_MINIO_NAME = "minio"
+	STORAGESOURCE_S3_NAME    = "s3"
+)
+
 // DIR_MOD 目录创建权限
 const DIR_MOD fs.FileMode = 0766 // Unix permission bits
 
@@ -362,7 +368,7 @@ const (
 
 const (
 	WindDbWsd = "wsd"
-	ThsDs = "thsds"
+	ThsDs     = "thsds"
 )
 
 const (