52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package files
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"log"
|
|
"strconv"
|
|
|
|
"github.com/minio/minio-go/v7"
|
|
"github.com/minio/minio-go/v7/pkg/credentials"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
var MinioClient *minio.Client
|
|
|
|
func MinioConnect() {
|
|
endpoint := fmt.Sprintf("%s:%d", viper.GetString("minio.hostname"), viper.GetInt("minio.port"))
|
|
log.Printf("Minio Endpoint: %s", endpoint)
|
|
accessKeyID := viper.GetString("minio.accessKeyID")
|
|
accessKeySecret := viper.GetString("minio.accessKeySecret")
|
|
useSSL, err := strconv.ParseBool(viper.GetString("minio.sslmode"))
|
|
|
|
minioClient, err := minio.New(endpoint, &minio.Options{
|
|
Creds: credentials.NewStaticV4(accessKeyID, accessKeySecret, ""),
|
|
Secure: useSSL,
|
|
})
|
|
if err != nil {
|
|
log.Fatalf("Could not connect to Minio storage: %v", err)
|
|
}
|
|
|
|
MinioClient = minioClient
|
|
}
|
|
|
|
func MinioSetup() {
|
|
ctx := context.Background()
|
|
client := MinioClient
|
|
bucketName := viper.GetString("minio.bucket")
|
|
err := client.MakeBucket(ctx, bucketName, minio.MakeBucketOptions{Region: ""})
|
|
if err != nil {
|
|
// Check to see if we already own this bucket (which happens if you run this twice)
|
|
exists, errBucketExists := client.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)
|
|
}
|
|
|
|
}
|