You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

storage_test.go 1.9 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package storage
  2. import (
  3. "bytes"
  4. "io"
  5. "testing"
  6. "github.com/google/uuid"
  7. . "github.com/smartystreets/goconvey/convey"
  8. "gitlink.org.cn/cloudream/common/models"
  9. )
  10. func Test_Object(t *testing.T) {
  11. Convey("上传,下载,删除", t, func() {
  12. cli := NewClient("http://localhost:7890")
  13. fileData := make([]byte, 4096)
  14. for i := 0; i < len(fileData); i++ {
  15. fileData[i] = byte(i)
  16. }
  17. upResp, err := cli.ObjectUpload(ObjectUploadReq{
  18. UserID: 0,
  19. BucketID: 1,
  20. FileSize: 4096,
  21. ObjectName: uuid.NewString(),
  22. Redundancy: RedundancyConfig{
  23. Type: models.RedundancyRep,
  24. Config: models.NewRepRedundancyConfig(1),
  25. },
  26. File: bytes.NewBuffer(fileData),
  27. })
  28. So(err, ShouldBeNil)
  29. downFs, err := cli.ObjectDownload(ObjectDownloadReq{
  30. UserID: 0,
  31. ObjectID: upResp.ObjectID,
  32. })
  33. So(err, ShouldBeNil)
  34. downFileData, err := io.ReadAll(downFs)
  35. So(err, ShouldBeNil)
  36. So(downFileData, ShouldResemble, fileData)
  37. downFs.Close()
  38. err = cli.ObjectDelete(ObjectDeleteReq{
  39. UserID: 0,
  40. ObjectID: upResp.ObjectID,
  41. })
  42. So(err, ShouldBeNil)
  43. })
  44. }
  45. func Test_Storage(t *testing.T) {
  46. Convey("上传后调度文件", t, func() {
  47. cli := NewClient("http://localhost:7890")
  48. fileData := make([]byte, 4096)
  49. for i := 0; i < len(fileData); i++ {
  50. fileData[i] = byte(i)
  51. }
  52. upResp, err := cli.ObjectUpload(ObjectUploadReq{
  53. UserID: 0,
  54. BucketID: 1,
  55. FileSize: 4096,
  56. ObjectName: uuid.NewString(),
  57. Redundancy: RedundancyConfig{
  58. Type: models.RedundancyRep,
  59. Config: models.NewRepRedundancyConfig(1),
  60. },
  61. File: bytes.NewBuffer(fileData),
  62. })
  63. So(err, ShouldBeNil)
  64. err = cli.StorageMoveObject(StorageMoveObjectReq{
  65. UserID: 0,
  66. ObjectID: upResp.ObjectID,
  67. StorageID: 1,
  68. })
  69. So(err, ShouldBeNil)
  70. err = cli.ObjectDelete(ObjectDeleteReq{
  71. UserID: 0,
  72. ObjectID: upResp.ObjectID,
  73. })
  74. So(err, ShouldBeNil)
  75. })
  76. }

公共库