From 920d7d9428eb6fdc003cd82b7ea400ab3b1c5c19 Mon Sep 17 00:00:00 2001 From: Sydonian <794346190@qq.com> Date: Fri, 15 Aug 2025 17:22:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=B0=83=E5=BA=A6=E6=97=B6?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E7=9A=84=E6=96=87=E4=BB=B6=E9=95=BF=E5=BA=A6?= =?UTF-8?q?=E4=B8=8D=E5=AF=B9=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/internal/services/user_space.go | 5 +++-- client/internal/ticktock/redundancy_recover.go | 2 +- common/pkgs/ioswitch2/fromto.go | 18 ++++++++++-------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/client/internal/services/user_space.go b/client/internal/services/user_space.go index 2ff3b09..990379b 100644 --- a/client/internal/services/user_space.go +++ b/client/internal/services/user_space.go @@ -7,6 +7,7 @@ import ( "github.com/samber/lo" "gitlink.org.cn/cloudream/common/pkgs/logger" + "gitlink.org.cn/cloudream/common/utils/math2" "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch/exec" jcstypes "gitlink.org.cn/cloudream/jcs-pub/common/types" "gorm.io/gorm" @@ -264,11 +265,11 @@ func (svc *UserSpaceService) DownloadPackage(req cliapi.UserSpaceDownloadPackage newDstSpace.RecommendHub = nil } - ft.AddTo(ioswitch2.NewToBaseStore(newDstSpace, dstPath)) + ft.AddTo(ioswitch2.NewToBaseStore(newDstSpace, dstPath).WithRange(math2.NewRange(0, details[dIndex].Object.Size))) // 顺便保存到同存储服务的分片存储中 if destSpace.UserSpace.ShardStore != nil { - ft.AddTo(ioswitch2.NewToShardStore(newDstSpace, ioswitch2.RawStream(), "")) + ft.AddTo(ioswitch2.NewToShardStore(newDstSpace, ioswitch2.RawStream(), "").WithRange(math2.NewRange(0, details[dIndex].Object.Size))) pinned = append(pinned, jcstypes.PinnedObject{ ObjectID: details[dIndex].Object.ObjectID, UserSpaceID: destSpace.UserSpace.UserSpaceID, diff --git a/client/internal/ticktock/redundancy_recover.go b/client/internal/ticktock/redundancy_recover.go index 9873466..35143ac 100644 --- a/client/internal/ticktock/redundancy_recover.go +++ b/client/internal/ticktock/redundancy_recover.go @@ -777,7 +777,7 @@ func (t *ChangeRedundancy) ecToRep(ctx *changeRedundancyContext, obj jcstypes.Ob } for i := range uploadStgs { - ft.AddTo(ioswitch2.NewToShardStoreWithRange(*uploadStgs[i].UserSpace, ioswitch2.RawStream(), fmt.Sprintf("%d", i), math2.NewRange(0, obj.Object.Size))) + ft.AddTo(ioswitch2.NewToShardStore(*uploadStgs[i].UserSpace, ioswitch2.RawStream(), fmt.Sprintf("%d", i)).WithRange(math2.NewRange(0, obj.Object.Size))) } err := parser.Parse(ft, planBlder) diff --git a/common/pkgs/ioswitch2/fromto.go b/common/pkgs/ioswitch2/fromto.go index 5dd7024..3cd0e0e 100644 --- a/common/pkgs/ioswitch2/fromto.go +++ b/common/pkgs/ioswitch2/fromto.go @@ -191,13 +191,9 @@ func NewToShardStore(space jcstypes.UserSpaceDetail, strIdx StreamIndex, retStor } } -func NewToShardStoreWithRange(space jcstypes.UserSpaceDetail, streamIndex StreamIndex, retStoreKey string, rng math2.Range) *ToShardStore { - return &ToShardStore{ - UserSpace: space, - StreamIndex: streamIndex, - ResultStoreKey: retStoreKey, - Range: rng, - } +func (t *ToShardStore) WithRange(rng math2.Range) *ToShardStore { + t.Range = rng + return t } func (t *ToShardStore) GetStreamIndex() StreamIndex { @@ -212,6 +208,7 @@ type ToBaseStore struct { UserSpace jcstypes.UserSpaceDetail ObjectPath jcstypes.JPath Option stgtypes.WriteOption + Range math2.Range } func NewToBaseStore(space jcstypes.UserSpaceDetail, objectPath jcstypes.JPath) *ToBaseStore { @@ -221,6 +218,11 @@ func NewToBaseStore(space jcstypes.UserSpaceDetail, objectPath jcstypes.JPath) * } } +func (t *ToBaseStore) WithRange(rng math2.Range) *ToBaseStore { + t.Range = rng + return t +} + func (t *ToBaseStore) GetStreamIndex() StreamIndex { return StreamIndex{ Type: StreamIndexRaw, @@ -228,5 +230,5 @@ func (t *ToBaseStore) GetStreamIndex() StreamIndex { } func (t *ToBaseStore) GetRange() math2.Range { - return math2.Range{} + return t.Range }