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.

bucket.go 2.4 kB

2 years ago
2 years ago
2 years ago
2 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package services
  2. import (
  3. "gitlink.org.cn/cloudream/common/consts/errorcode"
  4. log "gitlink.org.cn/cloudream/common/utils/logger"
  5. "gitlink.org.cn/cloudream/db/model"
  6. ramsg "gitlink.org.cn/cloudream/rabbitmq/message"
  7. coormsg "gitlink.org.cn/cloudream/rabbitmq/message/coordinator"
  8. )
  9. func (svc *Service) GetBucket(userID int, bucketID int) (model.Bucket, error) {
  10. // TODO
  11. panic("not implement yet")
  12. }
  13. func (svc *Service) GetUserBuckets(msg *coormsg.GetUserBuckets) *coormsg.GetUserBucketsResp {
  14. buckets, err := svc.db.Bucket().GetUserBuckets(msg.Body.UserID)
  15. if err != nil {
  16. log.WithField("UserID", msg.Body.UserID).
  17. Warnf("get user buckets failed, err: %s", err.Error())
  18. return ramsg.ReplyFailed[coormsg.GetUserBucketsResp](errorcode.OPERATION_FAILED, "get all buckets failed")
  19. }
  20. return ramsg.ReplyOK(coormsg.NewGetUserBucketsRespBody(buckets))
  21. }
  22. func (svc *Service) GetBucketObjects(msg *coormsg.GetBucketObjects) *coormsg.GetBucketObjectsResp {
  23. objects, err := svc.db.Object().GetBucketObjects(msg.Body.UserID, msg.Body.BucketID)
  24. if err != nil {
  25. log.WithField("UserID", msg.Body.UserID).
  26. WithField("BucketID", msg.Body.BucketID).
  27. Warnf("get bucket objects failed, err: %s", err.Error())
  28. return ramsg.ReplyFailed[coormsg.GetBucketObjectsResp](errorcode.OPERATION_FAILED, "get bucket objects failed")
  29. }
  30. return ramsg.ReplyOK(coormsg.NewGetBucketObjectsRespBody(objects))
  31. }
  32. func (svc *Service) CreateBucket(msg *coormsg.CreateBucket) *coormsg.CreateBucketResp {
  33. bucketID, err := svc.db.Bucket().Create(msg.Body.UserID, msg.Body.BucketName)
  34. if err != nil {
  35. log.WithField("UserID", msg.Body.UserID).
  36. WithField("BucketName", msg.Body.BucketName).
  37. Warnf("create bucket failed, err: %s", err.Error())
  38. return ramsg.ReplyFailed[coormsg.CreateBucketResp](errorcode.OPERATION_FAILED, "create bucket failed")
  39. }
  40. return ramsg.ReplyOK(coormsg.NewCreateBucketRespBody(bucketID))
  41. }
  42. func (svc *Service) DeleteBucket(msg *coormsg.DeleteBucket) *coormsg.DeleteBucketResp {
  43. err := svc.db.Bucket().Delete(msg.Body.UserID, msg.Body.BucketID)
  44. if err != nil {
  45. log.WithField("UserID", msg.Body.UserID).
  46. WithField("BucketID", msg.Body.BucketID).
  47. Warnf("delete bucket failed, err: %s", err.Error())
  48. return ramsg.ReplyFailed[coormsg.DeleteBucketResp](errorcode.OPERATION_FAILED, "delete bucket failed")
  49. }
  50. return ramsg.ReplyOK(coormsg.NewDeleteBucketRespBody())
  51. }

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