Skip to content

Commit 56e0f9f

Browse files
committed
perf: 修改storage模块结构,防止子模块引用父模块
1 parent 19a6f11 commit 56e0f9f

File tree

11 files changed

+50
-40
lines changed

11 files changed

+50
-40
lines changed

cache/loader.go

-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ var (
1616
type Encoder interface {
1717
Marshal(val any) ([]byte, error)
1818
}
19-
2019
type EncoderFunc func(val any) ([]byte, error)
2120

2221
func (e EncoderFunc) Marshal(val any) ([]byte, error) {

layout/go.mod

+4
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ require (
6060
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
6161
github.com/golang/protobuf v1.5.4 // indirect
6262
github.com/google/go-cmp v0.6.0 // indirect
63+
github.com/google/subcommands v1.2.0 // indirect
6364
github.com/google/uuid v1.6.0 // indirect
6465
github.com/hashicorp/hcl/v2 v2.13.0 // indirect
6566
github.com/inconshreveable/mousetrap v1.1.0 // indirect
@@ -70,12 +71,15 @@ require (
7071
github.com/leodido/go-urn v1.4.0 // indirect
7172
github.com/mailru/easyjson v0.9.0 // indirect
7273
github.com/mattn/go-isatty v0.0.20 // indirect
74+
github.com/mattn/go-runewidth v0.0.9 // indirect
7375
github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 // indirect
7476
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
7577
github.com/modern-go/reflect2 v1.0.2 // indirect
7678
github.com/ncruces/go-strftime v0.1.9 // indirect
79+
github.com/olekukonko/tablewriter v0.0.5 // indirect
7780
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
7881
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
82+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
7983
github.com/qiniu/go-sdk/v7 v7.25.2 // indirect
8084
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
8185
github.com/spf13/pflag v1.0.6 // indirect

layout/go.sum

+5
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN
107107
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
108108
github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd h1:gbpYu9NMq8jhDVbvlGkMFWCjLFlqqEZjEmObmhUy6Vo=
109109
github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
110+
github.com/google/subcommands v1.2.0 h1:vWQspBTo2nEqTUFita5/KeEWlUL8kQObDFbub/EN9oE=
110111
github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
111112
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
112113
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -149,6 +150,8 @@ github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4
149150
github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
150151
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
151152
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
153+
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
154+
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
152155
github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
153156
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
154157
github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 h1:DpOJ2HYzCv8LZP15IdmG+YdwD2luVPHITV96TkirNBM=
@@ -160,6 +163,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
160163
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
161164
github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
162165
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
166+
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
167+
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
163168
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
164169
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
165170
github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=

layout/internal/pkg/dao/system.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ package dao
33
import (
44
"context"
55
"encoding/json"
6-
keyvaluestore2 "github.com/TBXark/sphere/layout/internal/pkg/database/ent/keyvaluestore"
6+
"github.com/TBXark/sphere/layout/internal/pkg/database/ent/keyvaluestore"
77
)
88

99
func GetKeyValueStore[T any](ctx context.Context, dao *Dao, key string) (*T, error) {
10-
value, err := dao.KeyValueStore.Query().Where(keyvaluestore2.KeyEQ(key)).Only(ctx)
10+
value, err := dao.KeyValueStore.Query().Where(keyvaluestore.KeyEQ(key)).Only(ctx)
1111
if err != nil {
1212
return nil, err
1313
}
@@ -27,7 +27,7 @@ func SetSystemConfig[T any](ctx context.Context, dao *Dao, key string, value *T)
2727
err = dao.KeyValueStore.Create().
2828
SetKey(key).
2929
SetValue(data).
30-
OnConflictColumns(keyvaluestore2.FieldKey).
30+
OnConflictColumns(keyvaluestore.FieldKey).
3131
SetValue(data).
3232
Exec(ctx)
3333
return err

layout/internal/server/dash/web.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package dash
33
import (
44
"context"
55
dashv1 "github.com/TBXark/sphere/layout/api/dash/v1"
6-
sharedv2 "github.com/TBXark/sphere/layout/api/shared/v1"
6+
sharedv1 "github.com/TBXark/sphere/layout/api/shared/v1"
77
"github.com/TBXark/sphere/layout/internal/service/dash"
88
"github.com/TBXark/sphere/layout/internal/service/shared"
99
"github.com/TBXark/sphere/log"
@@ -80,8 +80,8 @@ func (w *Web) Start(ctx context.Context) error {
8080
initDefaultRolesACL(w.service.ACL)
8181

8282
sharedSrc := shared.NewService(w.service.Storage, "dash")
83-
sharedv2.RegisterStorageServiceHTTPServer(needAuthRoute, sharedSrc)
84-
sharedv2.RegisterTestServiceHTTPServer(api, sharedSrc)
83+
sharedv1.RegisterStorageServiceHTTPServer(needAuthRoute, sharedSrc)
84+
sharedv1.RegisterTestServiceHTTPServer(api, sharedSrc)
8585

8686
authRoute := api.Group("/")
8787
// 根据元数据限定中间件作用范围

storage/models/model.go

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package models
2+
3+
type FileUploadToken struct {
4+
Token string `json:"token"`
5+
Key string `json:"key"`
6+
URL string `json:"url"`
7+
}
8+
9+
type FileUploadResult struct {
10+
Key string `json:"key"`
11+
}

storage/qiniu/qiniu.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"crypto/md5"
66
"encoding/hex"
77
"fmt"
8-
store "github.com/TBXark/sphere/storage"
8+
"github.com/TBXark/sphere/storage/models"
99
"github.com/qiniu/go-sdk/v7/auth/qbox"
1010
"github.com/qiniu/go-sdk/v7/storage"
1111
"io"
@@ -109,7 +109,7 @@ func (n *Qiniu) ExtractKeyFromURL(uri string) string {
109109
return key
110110
}
111111

112-
func (n *Qiniu) GenerateUploadToken(fileName string, dir string, nameBuilder func(fileName string, dir ...string) string) store.FileUploadToken {
112+
func (n *Qiniu) GenerateUploadToken(fileName string, dir string, nameBuilder func(fileName string, dir ...string) string) models.FileUploadToken {
113113
fileExt := path.Ext(fileName)
114114
sum := md5.Sum([]byte(fileName))
115115
nameMd5 := hex.EncodeToString(sum[:])
@@ -120,14 +120,14 @@ func (n *Qiniu) GenerateUploadToken(fileName string, dir string, nameBuilder fun
120120
InsertOnly: 1,
121121
MimeLimit: "image/*;video/*",
122122
}
123-
return store.FileUploadToken{
123+
return models.FileUploadToken{
124124
Token: put.UploadToken(n.mac),
125125
Key: key,
126126
URL: n.GenerateURL(key),
127127
}
128128
}
129129

130-
func (n *Qiniu) UploadFile(ctx context.Context, file io.Reader, size int64, key string) (*store.FileUploadResult, error) {
130+
func (n *Qiniu) UploadFile(ctx context.Context, file io.Reader, size int64, key string) (*models.FileUploadResult, error) {
131131
put := &storage.PutPolicy{
132132
Scope: n.config.Bucket,
133133
}
@@ -140,12 +140,12 @@ func (n *Qiniu) UploadFile(ctx context.Context, file io.Reader, size int64, key
140140
if err != nil {
141141
return nil, err
142142
}
143-
return &store.FileUploadResult{
143+
return &models.FileUploadResult{
144144
Key: ret.Key,
145145
}, nil
146146
}
147147

148-
func (n *Qiniu) UploadLocalFile(ctx context.Context, file string, key string) (*store.FileUploadResult, error) {
148+
func (n *Qiniu) UploadLocalFile(ctx context.Context, file string, key string) (*models.FileUploadResult, error) {
149149
put := &storage.PutPolicy{
150150
Scope: n.config.Bucket,
151151
}
@@ -158,7 +158,7 @@ func (n *Qiniu) UploadLocalFile(ctx context.Context, file string, key string) (*
158158
if err != nil {
159159
return nil, err
160160
}
161-
return &store.FileUploadResult{
161+
return &models.FileUploadResult{
162162
Key: ret.Key,
163163
}, nil
164164
}

storage/s3/s3.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"context"
55
"fmt"
66
"github.com/TBXark/sphere/log"
7-
"github.com/TBXark/sphere/storage"
7+
"github.com/TBXark/sphere/storage/models"
88
"io"
99
"net/url"
1010
"strings"
@@ -97,22 +97,22 @@ func (s *S3) ExtractKeyFromURLWithMode(uri string, strict bool) (string, error)
9797
return parts[1], nil
9898
}
9999

100-
func (s *S3) UploadFile(ctx context.Context, file io.Reader, size int64, key string) (*storage.FileUploadResult, error) {
100+
func (s *S3) UploadFile(ctx context.Context, file io.Reader, size int64, key string) (*models.FileUploadResult, error) {
101101
info, err := s.client.PutObject(ctx, s.config.Bucket, key, file, size, minio.PutObjectOptions{})
102102
if err != nil {
103103
return nil, err
104104
}
105-
return &storage.FileUploadResult{
105+
return &models.FileUploadResult{
106106
Key: info.Key,
107107
}, nil
108108
}
109109

110-
func (s *S3) UploadLocalFile(ctx context.Context, file string, key string) (*storage.FileUploadResult, error) {
110+
func (s *S3) UploadLocalFile(ctx context.Context, file string, key string) (*models.FileUploadResult, error) {
111111
info, err := s.client.FPutObject(ctx, s.config.Bucket, key, file, minio.PutObjectOptions{})
112112
if err != nil {
113113
return nil, err
114114
}
115-
return &storage.FileUploadResult{
115+
return &models.FileUploadResult{
116116
Key: info.Key,
117117
}, nil
118118
}

storage/storage.go

+4-13
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,10 @@ package storage
22

33
import (
44
"context"
5+
"github.com/TBXark/sphere/storage/models"
56
"io"
67
)
78

8-
type FileUploadToken struct {
9-
Token string `json:"token"`
10-
Key string `json:"key"`
11-
URL string `json:"url"`
12-
}
13-
14-
type FileUploadResult struct {
15-
Key string `json:"key"`
16-
}
17-
189
type URLHandler interface {
1910
GenerateURL(key string) string
2011
GenerateURLs(keys []string) []string
@@ -24,12 +15,12 @@ type URLHandler interface {
2415
}
2516

2617
type TokenGenerator interface {
27-
GenerateUploadToken(fileName string, dir string, nameBuilder func(filename string, dir ...string) string) FileUploadToken
18+
GenerateUploadToken(fileName string, dir string, nameBuilder func(filename string, dir ...string) string) models.FileUploadToken
2819
}
2920

3021
type FileUploader interface {
31-
UploadFile(ctx context.Context, file io.Reader, size int64, key string) (*FileUploadResult, error)
32-
UploadLocalFile(ctx context.Context, file string, key string) (*FileUploadResult, error)
22+
UploadFile(ctx context.Context, file io.Reader, size int64, key string) (*models.FileUploadResult, error)
23+
UploadLocalFile(ctx context.Context, file string, key string) (*models.FileUploadResult, error)
3324
}
3425

3526
type Storage interface {

utils/boot/run.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"errors"
66
"flag"
77
"fmt"
8-
log2 "github.com/TBXark/sphere/log"
8+
"github.com/TBXark/sphere/log"
99
"github.com/TBXark/sphere/log/logfields"
1010
"os"
1111
"os/signal"
@@ -53,13 +53,13 @@ func DefaultConfigParser[T any](ver string, parser func(string) (*T, error)) *T
5353
return conf
5454
}
5555

56-
func Run[T any](ver string, conf *T, logConf *log2.Options, builder func(*T) (*Application, error)) error {
56+
func Run[T any](ver string, conf *T, logConf *log.Options, builder func(*T) (*Application, error)) error {
5757
// Init logger
58-
log2.Init(logConf, logfields.String("version", ver))
59-
log2.Info("Start application", logfields.String("version", ver))
58+
log.Init(logConf, logfields.String("version", ver))
59+
log.Info("Start application", logfields.String("version", ver))
6060
defer func() {
61-
if e := log2.Sync(); e != nil {
62-
log2.Warnf("Failed to sync log: %v", e)
61+
if e := log.Sync(); e != nil {
62+
log.Warnf("Failed to sync log: %v", e)
6363
}
6464
}()
6565

@@ -85,10 +85,10 @@ func Run[T any](ver string, conf *T, logConf *log2.Options, builder func(*T) (*A
8585
// Wait for shutdown signal or application error
8686
select {
8787
case <-quit:
88-
log2.Debug("Received shutdown signal")
88+
log.Debug("Received shutdown signal")
8989
case e := <-errChan:
9090
if e != nil {
91-
log2.Error("Application error", logfields.Error(e))
91+
log.Error("Application error", logfields.Error(e))
9292
errs = append(errs, e)
9393
}
9494
}

wechat/model.go wechat/models.go

File renamed without changes.

0 commit comments

Comments
 (0)