Explorar o código

补充redis校验

xuzhiheng %!s(int64=4) %!d(string=hai) anos
pai
achega
862275fbcb

+ 2 - 1
rpc/internal/logic/createdomainlogic.go

@@ -2,6 +2,7 @@ package logic
 
 import (
 	"context"
+	"strings"
 
 	"app.yhyue.com/moapp/jyfs/rpc/filesystem"
 	"app.yhyue.com/moapp/jyfs/rpc/internal/redis"
@@ -30,7 +31,7 @@ func (l *CreateDomainLogic) CreateDomain(in *filesystem.DomainReq) (*filesystem.
 	if err != nil {
 		return &filesystem.DomainResp{State: false}, err
 	} else {
-		redis.Put("jyfs", in.Name, 1, -1)
+		redis.Put("jyfs", "jyfs_"+in.Name, strings.Join(in.MetaFields, ","), -1)
 		return &filesystem.DomainResp{State: true}, nil
 	}
 }

+ 10 - 3
rpc/internal/logic/getfilemetalogic.go

@@ -2,6 +2,9 @@ package logic
 
 import (
 	"context"
+	"strings"
+
+	"app.yhyue.com/moapp/jyfs/rpc/internal/redis"
 
 	"fmt"
 
@@ -30,13 +33,17 @@ func (l *GetFileMetaLogic) GetFileMeta(in *filesystem.LoadFileReq) (*filesystem.
 	// // 获取存储空间。
 	bucket, err := l.svcCtx.OssClient.Bucket(in.Domain)
 	if err != nil {
-		return &filesystem.LoadFileMetaResp{}, nil
+		return &filesystem.LoadFileMetaResp{}, err
 	}
 	// 获取文件元信息。
 	props, err := bucket.GetObjectDetailedMeta(in.FileId)
 	if err != nil {
-		return &filesystem.LoadFileMetaResp{}, nil
+		return &filesystem.LoadFileMetaResp{}, err
 	}
 	fmt.Println("Object Meta:", props)
-	return &filesystem.LoadFileMetaResp{}, nil
+	for k, v := range props {
+		vs := strings.Join(v, ",")
+		props[k] = vs
+	}
+	return &filesystem.LoadFileMetaResp{Meta: props}, nil
 }

+ 10 - 0
rpc/internal/logic/savefilelogic.go

@@ -2,6 +2,8 @@ package logic
 
 import (
 	"context"
+	"errors"
+	"strings"
 
 	"app.yhyue.com/moapp/jyfs/rpc/filesystem"
 	"app.yhyue.com/moapp/jyfs/rpc/internal/svc"
@@ -34,6 +36,14 @@ func (l *SaveFileLogic) SaveFile(in *filesystem.SaveFileReq) (*filesystem.FileOp
 	if err != nil {
 		return &filesystem.FileOpResp{State: false}, err
 	}
+	meta := redis.GetStr("jyfs", "jyfs_"+in.Domain)
+	if meta != nil {
+		for k, _ := range in.Meta {
+			if !strings.Contains(meta, k) {
+				return &filesystem.FileOpResp{}, errors.New("缺少元信息")
+			}
+		}
+	}
 	// 设置文件元信息:过期时间为2049年1月10日 23:00:00 GMT,访问权限为公共读,自定义元信息为MyProp(取值MyPropVal)。
 	// expires := time.Date(2049, time.January, 10, 23, 0, 0, 0, time.UTC)
 	options := []oss.Option{

+ 8 - 1
rpc/internal/logic/updatefilemetalogic.go

@@ -33,7 +33,14 @@ func (l *UpdateFileMetaLogic) UpdateFileMeta(in *filesystem.UpdateFileMetaReq) (
 	if err != nil {
 		return &filesystem.FileOpResp{}, err
 	}
-
+	meta := redis.GetStr("jyfs", "jyfs_"+in.Domain)
+	if meta != nil {
+		for k, _ := range in.Meta {
+			if !strings.Contains(meta, k) {
+				return &filesystem.FileOpResp{}, errors.New("缺少元信息")
+			}
+		}
+	}
 	// 一次修改多条元信息。
 	options := []oss.Option{
 		// oss.Meta("MyMeta", "MyMetaValue2"),