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 5.4 kB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. package cdsapi
  2. import (
  3. "bytes"
  4. "fmt"
  5. "io"
  6. "testing"
  7. "github.com/google/uuid"
  8. . "github.com/smartystreets/goconvey/convey"
  9. "gitlink.org.cn/cloudream/common/pkgs/iterator"
  10. cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
  11. )
  12. func Test_PackageGet(t *testing.T) {
  13. Convey("上传后获取Package信息", t, func() {
  14. cli := NewClient(&Config{
  15. URL: "http://localhost:7890",
  16. })
  17. fileData := make([]byte, 4096)
  18. for i := 0; i < len(fileData); i++ {
  19. fileData[i] = byte(i)
  20. }
  21. pkgName := uuid.NewString()
  22. createResp, err := cli.Package().Create(PackageCreate{
  23. UserID: 1,
  24. BucketID: 1,
  25. Name: pkgName,
  26. })
  27. So(err, ShouldBeNil)
  28. _, err = cli.Object().Upload(ObjectUpload{
  29. ObjectUploadInfo: ObjectUploadInfo{
  30. UserID: 1,
  31. PackageID: createResp.Package.PackageID,
  32. },
  33. Files: iterator.Array(
  34. &UploadingObject{
  35. Path: "abc/test",
  36. File: io.NopCloser(bytes.NewBuffer(fileData)),
  37. },
  38. &UploadingObject{
  39. Path: "test2",
  40. File: io.NopCloser(bytes.NewBuffer(fileData)),
  41. },
  42. ),
  43. })
  44. So(err, ShouldBeNil)
  45. getResp, err := cli.Package().Get(PackageGetReq{
  46. UserID: 1,
  47. PackageID: createResp.Package.PackageID,
  48. })
  49. So(err, ShouldBeNil)
  50. So(getResp.PackageID, ShouldEqual, createResp.Package.PackageID)
  51. So(getResp.Package.Name, ShouldEqual, pkgName)
  52. err = cli.Package().Delete(PackageDelete{
  53. UserID: 1,
  54. PackageID: createResp.Package.PackageID,
  55. })
  56. So(err, ShouldBeNil)
  57. })
  58. }
  59. func Test_Object(t *testing.T) {
  60. Convey("上传,下载,删除", t, func() {
  61. cli := NewClient(&Config{
  62. URL: "http://localhost:7890",
  63. })
  64. fileData := make([]byte, 4096)
  65. for i := 0; i < len(fileData); i++ {
  66. fileData[i] = byte(i)
  67. }
  68. stgAff := cdssdk.StorageID(2)
  69. pkgName := uuid.NewString()
  70. createResp, err := cli.Package().Create(PackageCreate{
  71. UserID: 1,
  72. BucketID: 1,
  73. Name: pkgName,
  74. })
  75. So(err, ShouldBeNil)
  76. _, err = cli.Object().Upload(ObjectUpload{
  77. ObjectUploadInfo: ObjectUploadInfo{
  78. UserID: 1,
  79. PackageID: createResp.Package.PackageID,
  80. Affinity: stgAff,
  81. },
  82. Files: iterator.Array(
  83. &UploadingObject{
  84. Path: "test",
  85. File: io.NopCloser(bytes.NewBuffer(fileData)),
  86. },
  87. &UploadingObject{
  88. Path: "test2",
  89. File: io.NopCloser(bytes.NewBuffer(fileData)),
  90. },
  91. ),
  92. })
  93. So(err, ShouldBeNil)
  94. // downFs, err := cli.ObjectDownload(ObjectDownloadReq{
  95. // UserID: 1,
  96. // ObjectID: upResp.ObjectID,
  97. // })
  98. // So(err, ShouldBeNil)
  99. //
  100. // downFileData, err := io.ReadAll(downFs)
  101. // So(err, ShouldBeNil)
  102. // So(downFileData, ShouldResemble, fileData)
  103. // downFs.Close()
  104. err = cli.Package().Delete(PackageDelete{
  105. UserID: 1,
  106. PackageID: createResp.Package.PackageID,
  107. })
  108. So(err, ShouldBeNil)
  109. })
  110. }
  111. func Test_ObjectList(t *testing.T) {
  112. Convey("路径查询", t, func() {
  113. cli := NewClient(&Config{
  114. URL: "http://localhost:7890",
  115. })
  116. resp, err := cli.Object().List(ObjectList{
  117. UserID: 1,
  118. PackageID: 10,
  119. Path: "100x100K/zexema",
  120. })
  121. So(err, ShouldBeNil)
  122. fmt.Printf("\n")
  123. fmt.Printf("%+v\n", resp.Objects[0])
  124. })
  125. }
  126. func Test_Storage(t *testing.T) {
  127. Convey("上传后调度文件", t, func() {
  128. cli := NewClient(&Config{
  129. URL: "http://localhost:7890",
  130. })
  131. fileData := make([]byte, 4096)
  132. for i := 0; i < len(fileData); i++ {
  133. fileData[i] = byte(i)
  134. }
  135. pkgName := uuid.NewString()
  136. createResp, err := cli.Package().Create(PackageCreate{
  137. UserID: 1,
  138. BucketID: 1,
  139. Name: pkgName,
  140. })
  141. So(err, ShouldBeNil)
  142. _, err = cli.Object().Upload(ObjectUpload{
  143. ObjectUploadInfo: ObjectUploadInfo{
  144. UserID: 1,
  145. PackageID: createResp.Package.PackageID,
  146. },
  147. Files: iterator.Array(
  148. &UploadingObject{
  149. Path: "test",
  150. File: io.NopCloser(bytes.NewBuffer(fileData)),
  151. },
  152. &UploadingObject{
  153. Path: "test2",
  154. File: io.NopCloser(bytes.NewBuffer(fileData)),
  155. },
  156. ),
  157. })
  158. So(err, ShouldBeNil)
  159. _, err = cli.StorageLoadPackage(StorageLoadPackageReq{
  160. UserID: 1,
  161. PackageID: createResp.Package.PackageID,
  162. StorageID: 1,
  163. })
  164. So(err, ShouldBeNil)
  165. err = cli.Package().Delete(PackageDelete{
  166. UserID: 1,
  167. PackageID: createResp.Package.PackageID,
  168. })
  169. So(err, ShouldBeNil)
  170. })
  171. }
  172. func Test_Cache(t *testing.T) {
  173. Convey("上传后移动文件", t, func() {
  174. cli := NewClient(&Config{
  175. URL: "http://localhost:7890",
  176. })
  177. fileData := make([]byte, 4096)
  178. for i := 0; i < len(fileData); i++ {
  179. fileData[i] = byte(i)
  180. }
  181. pkgName := uuid.NewString()
  182. createResp, err := cli.Package().Create(PackageCreate{
  183. UserID: 1,
  184. BucketID: 1,
  185. Name: pkgName,
  186. })
  187. So(err, ShouldBeNil)
  188. _, err = cli.Object().Upload(ObjectUpload{
  189. ObjectUploadInfo: ObjectUploadInfo{
  190. UserID: 1,
  191. PackageID: createResp.Package.PackageID,
  192. },
  193. Files: iterator.Array(
  194. &UploadingObject{
  195. Path: "test.txt",
  196. File: io.NopCloser(bytes.NewBuffer(fileData)),
  197. },
  198. &UploadingObject{
  199. Path: "test2.txt",
  200. File: io.NopCloser(bytes.NewBuffer(fileData)),
  201. },
  202. ),
  203. })
  204. So(err, ShouldBeNil)
  205. _, err = cli.CacheMovePackage(CacheMovePackageReq{
  206. UserID: 1,
  207. PackageID: createResp.Package.PackageID,
  208. StorageID: 1,
  209. })
  210. So(err, ShouldBeNil)
  211. err = cli.Package().Delete(PackageDelete{
  212. UserID: 1,
  213. PackageID: createResp.Package.PackageID,
  214. })
  215. So(err, ShouldBeNil)
  216. })
  217. }