51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
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初始化成功")
|
||
}
|