package storage import ( "bytes" "io" "testing" "github.com/google/uuid" . "github.com/smartystreets/goconvey/convey" "gitlink.org.cn/cloudream/common/models" ) func Test_Object(t *testing.T) { Convey("上传,下载,删除", t, func() { cli := NewClient("http://localhost:7890") fileData := make([]byte, 4096) for i := 0; i < len(fileData); i++ { fileData[i] = byte(i) } upResp, err := cli.ObjectUpload(ObjectUploadReq{ UserID: 0, BucketID: 1, FileSize: 4096, ObjectName: uuid.NewString(), Redundancy: RedundancyConfig{ Type: models.RedundancyRep, Config: models.NewRepRedundancyConfig(1), }, File: bytes.NewBuffer(fileData), }) So(err, ShouldBeNil) downFs, err := cli.ObjectDownload(ObjectDownloadReq{ UserID: 0, ObjectID: upResp.ObjectID, }) So(err, ShouldBeNil) downFileData, err := io.ReadAll(downFs) So(err, ShouldBeNil) So(downFileData, ShouldResemble, fileData) downFs.Close() err = cli.ObjectDelete(ObjectDeleteReq{ UserID: 0, ObjectID: upResp.ObjectID, }) So(err, ShouldBeNil) }) } func Test_Storage(t *testing.T) { Convey("上传后调度文件", t, func() { cli := NewClient("http://localhost:7890") fileData := make([]byte, 4096) for i := 0; i < len(fileData); i++ { fileData[i] = byte(i) } upResp, err := cli.ObjectUpload(ObjectUploadReq{ UserID: 0, BucketID: 1, FileSize: 4096, ObjectName: uuid.NewString(), Redundancy: RedundancyConfig{ Type: models.RedundancyRep, Config: models.NewRepRedundancyConfig(1), }, File: bytes.NewBuffer(fileData), }) So(err, ShouldBeNil) err = cli.StorageMoveObject(StorageMoveObjectReq{ UserID: 0, ObjectID: upResp.ObjectID, StorageID: 1, }) So(err, ShouldBeNil) err = cli.ObjectDelete(ObjectDeleteReq{ UserID: 0, ObjectID: upResp.ObjectID, }) So(err, ShouldBeNil) }) }