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.

model.go 3.5 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package model
  2. import (
  3. "time"
  4. cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
  5. stgmod "gitlink.org.cn/cloudream/storage/common/models"
  6. )
  7. // TODO 可以考虑逐步迁移到cdssdk中。迁移思路:数据对象应该包含的字段都迁移到cdssdk中,内部使用的一些特殊字段则留在这里
  8. type Node struct {
  9. NodeID cdssdk.NodeID `db:"NodeID" json:"nodeID"`
  10. Name string `db:"Name" json:"name"`
  11. LocalIP string `db:"LocalIP" json:"localIP"`
  12. ExternalIP string `db:"ExternalIP" json:"externalIP"`
  13. LocalGRPCPort int `db:"LocalGRPCPort" json:"localGRPCPort"`
  14. ExternalGRPCPort int `db:"ExternalGRPCPort" json:"externalGRPCPort"`
  15. LocationID cdssdk.LocationID `db:"LocationID" json:"locationID"`
  16. State string `db:"State" json:"state"`
  17. LastReportTime *time.Time `db:"LastReportTime" json:"lastReportTime"`
  18. }
  19. type Storage struct {
  20. StorageID cdssdk.StorageID `db:"StorageID" json:"storageID"`
  21. Name string `db:"Name" json:"name"`
  22. NodeID cdssdk.NodeID `db:"NodeID" json:"nodeID"`
  23. Directory string `db:"Directory" json:"directory"`
  24. State string `db:"State" json:"state"`
  25. }
  26. type NodeDelay struct {
  27. SourceNodeID int64 `db:"SourceNodeID"`
  28. DestinationNodeID int64 `db:"DestinationNodeID"`
  29. DelayInMs int `db:"DelayInMs"`
  30. }
  31. type User struct {
  32. UserID cdssdk.UserID `db:"UserID" json:"userID"`
  33. Password string `db:"PassWord" json:"password"`
  34. }
  35. type UserBucket struct {
  36. UserID cdssdk.UserID `db:"UserID" json:"userID"`
  37. BucketID cdssdk.BucketID `db:"BucketID" json:"bucketID"`
  38. }
  39. type UserNode struct {
  40. UserID cdssdk.UserID `db:"UserID" json:"userID"`
  41. NodeID cdssdk.NodeID `db:"NodeID" json:"nodeID"`
  42. }
  43. type UserStorage struct {
  44. UserID cdssdk.UserID `db:"UserID" json:"userID"`
  45. StorageID cdssdk.StorageID `db:"StorageID" json:"storageID"`
  46. }
  47. type Bucket struct {
  48. BucketID cdssdk.BucketID `db:"BucketID" json:"bucketID"`
  49. Name string `db:"Name" json:"name"`
  50. CreatorID cdssdk.UserID `db:"CreatorID" json:"creatorID"`
  51. }
  52. type Package = cdssdk.Package
  53. type Object = cdssdk.Object
  54. type ObjectBlock = stgmod.ObjectBlock
  55. type Cache struct {
  56. FileHash string `db:"FileHash" json:"fileHash"`
  57. NodeID cdssdk.NodeID `db:"NodeID" json:"nodeID"`
  58. State string `db:"State" json:"state"`
  59. CacheTime time.Time `db:"CacheTime" json:"cacheTime"`
  60. Priority int `db:"Priority" json:"priority"`
  61. }
  62. const (
  63. StoragePackageStateNormal = "Normal"
  64. StoragePackageStateDeleted = "Deleted"
  65. StoragePackageStateOutdated = "Outdated"
  66. )
  67. // Storage当前加载的Package
  68. type StoragePackage struct {
  69. StorageID cdssdk.StorageID `db:"StorageID" json:"storageID"`
  70. PackageID cdssdk.PackageID `db:"PackageID" json:"packageID"`
  71. UserID cdssdk.UserID `db:"UserID" json:"userID"`
  72. State string `db:"State" json:"state"`
  73. }
  74. type StoragePackageLog struct {
  75. StorageID cdssdk.StorageID `db:"StorageID" json:"storageID"`
  76. PackageID cdssdk.PackageID `db:"PackageID" json:"packageID"`
  77. UserID cdssdk.UserID `db:"UserID" json:"userID"`
  78. CreateTime time.Time `db:"CreateTime" json:"createTime"`
  79. }
  80. type Location struct {
  81. LocationID cdssdk.LocationID `db:"LocationID" json:"locationID"`
  82. Name string `db:"Name" json:"name"`
  83. }

本项目旨在将云际存储公共基础设施化,使个人及企业可低门槛使用高效的云际存储服务(安装开箱即用云际存储客户端即可,无需关注其他组件的部署),同时支持用户灵活便捷定制云际存储的功能细节。