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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package services
  2. import (
  3. "fmt"
  4. "gitlink.org.cn/cloudream/db/model"
  5. )
  6. type BucketService struct {
  7. *Service
  8. }
  9. func BucketSvc(svc *Service) *BucketService {
  10. return &BucketService{Service: svc}
  11. }
  12. func (svc *BucketService) GetBucket(userID int, bucketID int) (model.Bucket, error) {
  13. // TODO
  14. panic("not implement yet")
  15. }
  16. func (svc *BucketService) GetUserBuckets(userID int) ([]model.Bucket, error) {
  17. resp, err := svc.coordinator.GetUserBuckets(userID)
  18. if err != nil {
  19. return nil, fmt.Errorf("get user buckets failed, err: %w", err)
  20. }
  21. if !resp.IsOK() {
  22. return nil, fmt.Errorf("create bucket objects failed, code: %s, message: %s", resp.ErrorCode, resp.Message)
  23. }
  24. return resp.Buckets, nil
  25. }
  26. func (svc *BucketService) GetBucketObjects(userID int, bucketID int) ([]model.Object, error) {
  27. resp, err := svc.coordinator.GetBucketObjects(userID, bucketID)
  28. if err != nil {
  29. return nil, fmt.Errorf("get bucket objects failed, err: %w", err)
  30. }
  31. if !resp.IsOK() {
  32. return nil, fmt.Errorf("create bucket objects failed, code: %s, message: %s", resp.ErrorCode, resp.Message)
  33. }
  34. return resp.Objects, nil
  35. }
  36. func (svc *BucketService) CreateBucket(userID int, bucketName string) (int, error) {
  37. resp, err := svc.coordinator.CreateBucket(userID, bucketName)
  38. if err != nil {
  39. return 0, fmt.Errorf("create bucket objects failed, err: %w", err)
  40. }
  41. if !resp.IsOK() {
  42. return 0, fmt.Errorf("create bucket objects failed, code: %s, message: %s", resp.ErrorCode, resp.Message)
  43. }
  44. return resp.BucketID, nil
  45. }
  46. func (src *BucketService) DeleteBucket(userID int, bucketID int) error {
  47. // TODO
  48. panic("not implement yet")
  49. }

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