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.2 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package services
  2. import (
  3. log "github.com/sirupsen/logrus"
  4. "gitlink.org.cn/cloudream/db/model"
  5. coormsg "gitlink.org.cn/cloudream/rabbitmq/message/coordinator"
  6. "gitlink.org.cn/cloudream/utils/consts/errorcode"
  7. )
  8. func (svc *Service) GetBucket(userID int, bucketID int) (model.Bucket, error) {
  9. // TODO
  10. panic("not implement yet")
  11. }
  12. func (svc *Service) GetUserBuckets(msg *coormsg.GetUserBucketsCommand) *coormsg.GetUserBucketsResp {
  13. buckets, err := svc.db.GetUserBuckets(msg.UserID)
  14. if err != nil {
  15. log.WithField("UserID", msg.UserID).
  16. Warnf("get user buckets failed, err: %s", err.Error())
  17. return coormsg.NewGetUserBucketsRespFailed(errorcode.OPERATION_FAILED, "get all buckets failed")
  18. }
  19. return coormsg.NewGetUserBucketsRespOK(buckets)
  20. }
  21. func (svc *Service) GetBucketObjects(msg *coormsg.GetBucketObjectsCommand) *coormsg.GetBucketObjectsResp {
  22. objects, err := svc.db.GetBucketObjects(msg.UserID, msg.BucketID)
  23. if err != nil {
  24. log.WithField("UserID", msg.UserID).
  25. WithField("BucketID", msg.BucketID).
  26. Warnf("get bucket objects failed, err: %s", err.Error())
  27. return coormsg.NewGetBucketObjectsRespFailed(errorcode.OPERATION_FAILED, "get all buckets failed")
  28. }
  29. return coormsg.NewGetBucketObjectsRespOK(objects)
  30. }
  31. func (svc *Service) CreateBucket(msg *coormsg.CreateBucketCommand) *coormsg.CreateBucketResp {
  32. bucketID, err := svc.db.CreateBucket(msg.UserID, msg.BucketName)
  33. if err != nil {
  34. log.WithField("UserID", msg.UserID).
  35. WithField("BucketName", msg.BucketName).
  36. Warnf("create bucket failed, err: %s", err.Error())
  37. return coormsg.NewCreateBucketRespFailed(errorcode.OPERATION_FAILED, "create bucket failed")
  38. }
  39. return coormsg.NewCreateBucketRespOK(bucketID)
  40. }
  41. func (svc *Service) DeleteBucket(msg *coormsg.DeleteBucketCommand) *coormsg.DeleteBucketResp {
  42. err := svc.db.DeleteBucket(msg.UserID, msg.BucketID)
  43. if err != nil {
  44. log.WithField("UserID", msg.UserID).
  45. WithField("BucketID", msg.BucketID).
  46. Warnf("delete bucket failed, err: %s", err.Error())
  47. return coormsg.NewDeleteBucketRespFailed(errorcode.OPERATION_FAILED, "delete bucket failed")
  48. }
  49. return coormsg.NewDeleteBucketRespOK()
  50. }

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