|
@@ -0,0 +1,347 @@
|
|
|
+package services
|
|
|
+
|
|
|
+import (
|
|
|
+ "context"
|
|
|
+ "errors"
|
|
|
+ "eta/eta_api/utils"
|
|
|
+ "github.com/minio/minio-go/v7"
|
|
|
+ "github.com/minio/minio-go/v7/pkg/credentials"
|
|
|
+ "log"
|
|
|
+ "os"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+func GetMinIOSTSToken() (item *Token, err error) {
|
|
|
+
|
|
|
+ item = new(Token)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ item.AccessKeyId = utils.MinIoAccessKeyId
|
|
|
+ item.SecretKeyId = utils.MinIoAccessKeySecret
|
|
|
+ item.Endpoint = utils.MinIoEndpoint
|
|
|
+ item.ImgHost = utils.MinIoImghost
|
|
|
+ item.Bucketname = utils.MinIoBucketname
|
|
|
+ item.UseSSL = utils.MinIoUseSSL
|
|
|
+ item.RegionId = utils.MinIoRegion
|
|
|
+ item.Port = utils.MinIoPort
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+type Token struct {
|
|
|
+ AccessKeyId string
|
|
|
+ SecretKeyId string
|
|
|
+ RegionId string
|
|
|
+ Bucketname string
|
|
|
+ Endpoint string
|
|
|
+ ImgHost string
|
|
|
+ UseSSL string
|
|
|
+ Port string
|
|
|
+}
|
|
|
+
|
|
|
+func UploadMinIo() {
|
|
|
+ ctx := context.Background()
|
|
|
+ endpoint := "8.136.199.33:9000/"
|
|
|
+ accessKeyID := "LfQ8uiJiLP7vLxjRrmNW"
|
|
|
+ secretAccessKey := "IszGVHsNicJMQxHC46cYFtbrOiapo0ynwOIJ6c2R"
|
|
|
+ useSSL := false
|
|
|
+
|
|
|
+
|
|
|
+ minioClient, err := minio.New(endpoint, &minio.Options{
|
|
|
+ Creds: credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
|
|
|
+ Secure: useSSL,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ log.Fatalln(err)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ bucketName := "etastatic"
|
|
|
+ location := "/"
|
|
|
+
|
|
|
+ err = minioClient.MakeBucket(ctx, bucketName, minio.MakeBucketOptions{Region: location})
|
|
|
+ if err != nil {
|
|
|
+
|
|
|
+ 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)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ objectName := "1111.xlsx"
|
|
|
+ filePath := "/Users/xi/Desktop/1111.xlsx"
|
|
|
+ contentType := "application/xlsx"
|
|
|
+
|
|
|
+
|
|
|
+ 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 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)
|
|
|
+ }
|
|
|
+ bucketName := utils.MinIoBucketname
|
|
|
+
|
|
|
+ exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
|
|
|
+ if errBucketExists == nil && exists {
|
|
|
+ log.Printf("We already own %s\n", bucketName)
|
|
|
+ } else {
|
|
|
+ log.Fatalln(err)
|
|
|
+ }
|
|
|
+ path := utils.MinIoUpload_Audio_Dir + time.Now().Format("200601/20060102/")
|
|
|
+ path += fileName
|
|
|
+
|
|
|
+
|
|
|
+ _, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
|
|
|
+ if err != nil {
|
|
|
+ log.Fatalln(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
|
|
|
+
|
|
|
+ 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
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ _, err = minioClient.FPutObject(ctx, bucketName, fileName, filePath, minio.PutObjectOptions{})
|
|
|
+ if err != nil {
|
|
|
+ log.Fatalln(err)
|
|
|
+ return "3", err
|
|
|
+ }
|
|
|
+
|
|
|
+ path = utils.MinIoImghost + path
|
|
|
+ return path, 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
|
|
|
+
|
|
|
+ exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
|
|
|
+ if errBucketExists == nil && exists {
|
|
|
+ log.Printf("We already own %s\n", bucketName)
|
|
|
+ } else {
|
|
|
+ log.Fatalln(err)
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ _, err = minioClient.FPutObject(ctx, bucketName, savePath, filePath, minio.PutObjectOptions{})
|
|
|
+ if err != nil {
|
|
|
+ log.Fatalln(err)
|
|
|
+ return 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
|
|
|
+
|
|
|
+ exists, errBucketExists := minioClient.BucketExists(ctx, bucketName)
|
|
|
+ if errBucketExists == nil && exists {
|
|
|
+ log.Printf("We already own %s\n", bucketName)
|
|
|
+ } else {
|
|
|
+ log.Fatalln(err)
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ _, err = minioClient.FPutObject(ctx, bucketName, savePath, filePath, minio.PutObjectOptions{})
|
|
|
+ if err != nil {
|
|
|
+ log.Fatalln(err)
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return err
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+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
|
|
|
+
|
|
|
+ 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
|
|
|
+}
|