houyaf 3 年 前
コミット
4befa6709f
1 ファイル変更70 行追加0 行削除
  1. 70 0
      paas/minio.go

+ 70 - 0
paas/minio.go

@@ -0,0 +1,70 @@
+package paas
+
+import (
+    "github.com/kataras/iris/v12"
+    "github.com/minio/minio-go/v7"
+    "github.com/minio/minio-go/v7/pkg/credentials"
+    "log"
+)
+
+type MinioClient struct {
+    ctx           iris.Context
+    client        *minio.Client
+    fileBucket    string
+    iconBucket    string
+    location      string
+}
+
+func NewClient(ctx iris.Context) *MinioClient {
+    var minioHost  = ""
+    var minioPort  = ""
+    var accessKey  = ""
+    var secretKey  = ""
+    minioClient, err := minio.New(
+            minioHost + ":"+ minioPort,
+            &minio.Options{
+                Creds: credentials.NewStaticV4(accessKey, secretKey, ""),
+                Secure: false,
+        })
+    if err != nil {
+        log.Fatalf("connect minio server fail %s url %s", err.Error(), err.Error(), minioHost+":"+minioPort)
+    }
+    
+    return &MinioClient{
+        ctx: ctx,
+        client: minioClient,
+        location: "us-east-1",
+        fileBucket: "file",
+        iconBucket: "icon",
+    }
+}
+
+func (c *MinioClient) checkBuckets() bool {
+   b1 := c.checkBucket(c.fileBucket)
+   b2 := c.checkBucket(c.iconBucket)
+   return b1&&b2
+}
+
+func (c *MinioClient) checkBucket(bucketName string) bool {
+    isExist, err1 := c.client.BucketExists(c.ctx, bucketName)
+    if err1 != nil {
+        log.Fatalf("checkBucket error " + err1.Error())
+        return false
+    }
+    
+    if !isExist {
+        err2 := c.client.MakeBucket(c.ctx, bucketName, minio.MakeBucketOptions{Region: c.location})
+        if err2 != nil {
+            log.Fatalf("checkBucket error " + err2.Error())
+            return false
+        }
+    }
+    return true
+}
+
+func (c *MinioClient) uploadObject(objectName, localFileName string) {
+    _, err := c.client.FPutObject(c.ctx, c.fileBucket, objectName, localFileName, minio.PutObjectOptions{})
+    if err != nil {
+        log.Fatalf("upload object error" + err.Error())
+    }
+}