package dal import ( "net/url" "octopus/internal/config" "sync" "github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7/pkg/credentials" "github.com/rs/zerolog/log" // pb "github.com/qdrant/go-client/qdrant" ) var ( ossOnce sync.Once ossInstance *minio.Client ) func GetMinio() *minio.Client { ossOnce.Do(initMinio) return ossInstance } func initMinio() { log.Info().Msg("loading minio configs") ossConfig, err := url.Parse(config.Get().Databases.OSS) if err != nil { log.Fatal().Err(err).Msg("parse oss config error") } accessSecret, _ := ossConfig.User.Password() // defaultConfig := &model.StorageConfig{ // Schema: ossConfig.Scheme, // Endpoint: ossConfig.Host, // AccessID: ossConfig.User.Username(), // AccessSecret: accessSecret, // Bucket: ossConfig.Query().Get("bucket"), // Region: ossConfig.Query().Get("region"), // Secure: cast.ToBool(ossConfig.Query().Get("secure")), // } minioClient, err := minio.New(ossConfig.Host, &minio.Options{ Creds: credentials.NewStaticV4(ossConfig.User.Username(), accessSecret, ""), Secure: false, }) if err != nil { log.Fatal().Msgf("minio client init error: %v", err) } ossInstance = minioClient }