40 lines
693 B
Go
40 lines
693 B
Go
package minio
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
|
|
min "github.com/minio/minio-go/v7"
|
|
"github.com/minio/minio-go/v7/pkg/credentials"
|
|
)
|
|
|
|
func Init(cfg Config) (*Client, error) {
|
|
if err := cfg.validate(); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
client, err := min.New(cfg.Endpoint, &min.Options{
|
|
Creds: credentials.NewStaticV4(cfg.AccessKey, cfg.SecretKey, ""),
|
|
Secure: cfg.UseSSL,
|
|
Region: region,
|
|
})
|
|
|
|
// return if error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
// health check
|
|
if client.IsOffline() {
|
|
return nil, errors.New("minio is currently offline")
|
|
}
|
|
|
|
fmt.Printf("⚡️[minio]: connected to %s \n", cfg.Endpoint)
|
|
|
|
// return
|
|
return &Client{
|
|
client: client,
|
|
cfg: cfg,
|
|
}, nil
|
|
}
|