package logic import ( "context" "strings" "fmt" "app.yhyue.com/moapp/jyfs/rpc/filesystem" "app.yhyue.com/moapp/jyfs/rpc/internal/svc" "github.com/tal-tech/go-zero/core/logx" ) type GetFileMetaLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewGetFileMetaLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetFileMetaLogic { return &GetFileMetaLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } // 获取文件元数据 func (l *GetFileMetaLogic) GetFileMeta(in *filesystem.LoadFileReq) (*filesystem.LoadFileMetaResp, error) { // todo: add your logic here and delete this line // // 获取存储空间。 bucket, err := l.svcCtx.OssClient.Bucket(in.Domain) if err != nil { return &filesystem.LoadFileMetaResp{}, err } // 获取文件元信息。 props, err := bucket.GetObjectDetailedMeta(in.FileId) if err != nil { return &filesystem.LoadFileMetaResp{}, err } metaMap := map[string]string{} fmt.Println("Object Meta:", props) for k, v := range props { vs := strings.Join(v, ",") metaMap[k] = vs } return &filesystem.LoadFileMetaResp{Meta: metaMap}, nil }