From 8d4e48f4840ec44729e39ee7e11bcd5d3f95a43f Mon Sep 17 00:00:00 2001 From: Starnop Date: Tue, 18 Jun 2019 16:29:14 +0800 Subject: [PATCH] feature: store piece md5s with native bytes Signed-off-by: Starnop --- supernode/daemon/mgr/cdn/file_meta_data.go | 12 ++++-------- supernode/daemon/mgr/cdn/file_meta_data_test.go | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/supernode/daemon/mgr/cdn/file_meta_data.go b/supernode/daemon/mgr/cdn/file_meta_data.go index 47df5f6fb..a91eada4f 100644 --- a/supernode/daemon/mgr/cdn/file_meta_data.go +++ b/supernode/daemon/mgr/cdn/file_meta_data.go @@ -3,6 +3,7 @@ package cdn import ( "context" "encoding/json" + "strings" "github.com/dragonflyoss/Dragonfly/apis/types" cutil "github.com/dragonflyoss/Dragonfly/common/util" @@ -168,12 +169,9 @@ func (mm *fileMetaDataManager) writePieceMD5s(ctx context.Context, taskID, fileM // append the the SHA-1 checksum of pieceMD5s pieceMD5s = append(pieceMD5s, cutil.Sha1(pieceMD5s)) - data, err := json.Marshal(pieceMD5s) - if err != nil { - return err - } + pieceMD5Str := strings.Join(pieceMD5s, "\n") - return mm.fileStore.PutBytes(ctx, getMd5DataRawFunc(taskID), data) + return mm.fileStore.PutBytes(ctx, getMd5DataRawFunc(taskID), []byte(pieceMD5Str)) } // readPieceMD5s read the md5 file of the taskID and returns the pieceMD5s. @@ -185,9 +183,7 @@ func (mm *fileMetaDataManager) readPieceMD5s(ctx context.Context, taskID, fileMD if err != nil { return nil, err } - if err := json.Unmarshal(bytes, &pieceMD5s); err != nil { - return nil, err - } + pieceMD5s = strings.Split(string(bytes), "\n") if cutil.IsEmptySlice(pieceMD5s) { return nil, nil diff --git a/supernode/daemon/mgr/cdn/file_meta_data_test.go b/supernode/daemon/mgr/cdn/file_meta_data_test.go index c7da8ecd8..1c90e3eda 100644 --- a/supernode/daemon/mgr/cdn/file_meta_data_test.go +++ b/supernode/daemon/mgr/cdn/file_meta_data_test.go @@ -130,7 +130,7 @@ func (s *CDNFileMetaDataTestSuite) TestWriteReadFileMetaData(c *check.C) { func (s *CDNFileMetaDataTestSuite) TestWriteReadPieceMD5s(c *check.C) { ctx := context.TODO() - pieceMD5s := []string{"91fe186ee566659663232dcd18749cce:1502"} + pieceMD5s := []string{"91fe186ee566659663232dcd18749cce:1502", "11fe186ee566659663232dcd18749cce:1502"} fileMD5 := "7a19c32d2c75345debe9031cfa9b649a" err := s.metaDataManager.writePieceMD5s(ctx, taskID, fileMD5, pieceMD5s)