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.

object.go 2.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package coordinator
  2. import (
  3. "gitlink.org.cn/cloudream/common/pkgs/mq"
  4. stgmod "gitlink.org.cn/cloudream/storage/common/models"
  5. "gitlink.org.cn/cloudream/storage/common/pkgs/db/model"
  6. )
  7. type ObjectService interface {
  8. GetPackageObjects(msg *GetPackageObjects) (*GetPackageObjectsResp, *mq.CodeMessage)
  9. GetPackageObjectRepData(msg *GetPackageObjectRepData) (*GetPackageObjectRepDataResp, *mq.CodeMessage)
  10. GetPackageObjectECData(msg *GetPackageObjectECData) (*GetPackageObjectECDataResp, *mq.CodeMessage)
  11. }
  12. // 查询Package中的所有Object,返回的Objects会按照ObjectID升序
  13. var _ = Register(Service.GetPackageObjects)
  14. type GetPackageObjects struct {
  15. mq.MessageBodyBase
  16. UserID int64 `json:"userID"`
  17. PackageID int64 `json:"packageID"`
  18. }
  19. type GetPackageObjectsResp struct {
  20. mq.MessageBodyBase
  21. Objects []model.Object `json:"objects"`
  22. }
  23. func NewGetPackageObjects(userID int64, packageID int64) *GetPackageObjects {
  24. return &GetPackageObjects{
  25. UserID: userID,
  26. PackageID: packageID,
  27. }
  28. }
  29. func NewGetPackageObjectsResp(objects []model.Object) *GetPackageObjectsResp {
  30. return &GetPackageObjectsResp{
  31. Objects: objects,
  32. }
  33. }
  34. func (client *Client) GetPackageObjects(msg *GetPackageObjects) (*GetPackageObjectsResp, error) {
  35. return mq.Request(Service.GetPackageObjects, client.rabbitCli, msg)
  36. }
  37. // 获取指定Object的Rep数据,返回的Objects会按照ObjectID升序
  38. var _ = Register(Service.GetPackageObjectRepData)
  39. type GetPackageObjectRepData struct {
  40. mq.MessageBodyBase
  41. PackageID int64 `json:"packageID"`
  42. }
  43. type GetPackageObjectRepDataResp struct {
  44. mq.MessageBodyBase
  45. Data []stgmod.ObjectRepData `json:"data"`
  46. }
  47. func NewGetPackageObjectRepData(packageID int64) *GetPackageObjectRepData {
  48. return &GetPackageObjectRepData{
  49. PackageID: packageID,
  50. }
  51. }
  52. func NewGetPackageObjectRepDataResp(data []stgmod.ObjectRepData) *GetPackageObjectRepDataResp {
  53. return &GetPackageObjectRepDataResp{
  54. Data: data,
  55. }
  56. }
  57. func (client *Client) GetPackageObjectRepData(msg *GetPackageObjectRepData) (*GetPackageObjectRepDataResp, error) {
  58. return mq.Request(Service.GetPackageObjectRepData, client.rabbitCli, msg)
  59. }
  60. // 获取指定Object的EC数据,返回的Objects会按照ObjectID升序
  61. var _ = Register(Service.GetPackageObjectECData)
  62. type GetPackageObjectECData struct {
  63. mq.MessageBodyBase
  64. PackageID int64 `json:"packageID"`
  65. }
  66. type GetPackageObjectECDataResp struct {
  67. mq.MessageBodyBase
  68. Data []stgmod.ObjectECData `json:"data"`
  69. }
  70. func NewGetPackageObjectECData(packageID int64) *GetPackageObjectECData {
  71. return &GetPackageObjectECData{
  72. PackageID: packageID,
  73. }
  74. }
  75. func NewGetPackageObjectECDataResp(data []stgmod.ObjectECData) *GetPackageObjectECDataResp {
  76. return &GetPackageObjectECDataResp{
  77. Data: data,
  78. }
  79. }
  80. func (client *Client) GetPackageObjectECData(msg *GetPackageObjectECData) (*GetPackageObjectECDataResp, error) {
  81. return mq.Request(Service.GetPackageObjectECData, client.rabbitCli, msg)
  82. }

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