package minio import ( "context" "gitee.ltd/lxh/wechat-robot/internal/config" "github.com/gofiber/fiber/v2/log" "github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7/pkg/credentials" ) var minioClient *minio.Client // Init // @description: 初始化Minio连接 func Init() { cfg, err := config.Load() if err != nil { log.Panicf("加载配置失败: %s", err.Error()) return } ctx := context.Background() // 初使化 minio client对象。 minioClient, err = minio.New(cfg.Minio.Endpoint, &minio.Options{ Creds: credentials.NewStaticV4(cfg.Minio.AccessKeyID, cfg.Minio.SecretAccessKey, ""), Secure: cfg.Minio.UseSsl, }) if err != nil { log.Panicf("OSS初始化失败: %v", err.Error()) } log.Debug("OSS连接成功,开始判断桶是否存在") // 判断捅是否存在,不存在就创建 var exists bool exists, err = minioClient.BucketExists(ctx, cfg.Minio.BucketName) if err != nil { log.Panicf("判断桶失败: %v", err) } if !exists { log.Debug("桶不存在,开始创建") // 创建桶 err = minioClient.MakeBucket(ctx, cfg.Minio.BucketName, minio.MakeBucketOptions{Region: "us-east-1"}) if err != nil { log.Panicf("OSS桶创建失败: %v", err.Error()) } log.Debug("桶创建成功") } else { log.Debug("桶已存在") } log.Info("OSS初始化成功") }