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

7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package services
  2. import (
  3. "time"
  4. "gitlink.org.cn/cloudream/storage2/client/types"
  5. )
  6. // BucketService 是对存储桶进行操作的服务类
  7. type BucketService struct {
  8. *Service
  9. }
  10. // BucketSvc 创建并返回一个BucketService实例
  11. func (svc *Service) BucketSvc() *BucketService {
  12. return &BucketService{Service: svc}
  13. }
  14. // GetBucket 根据用户ID和桶ID获取桶信息
  15. // userID: 用户的唯一标识
  16. // bucketID: 桶的唯一标识
  17. // 返回值: 桶的信息和可能发生的错误
  18. func (svc *BucketService) GetBucket(bucketID types.BucketID) (types.Bucket, error) {
  19. return svc.DB.Bucket().GetByID(svc.DB.DefCtx(), bucketID)
  20. }
  21. func (svc *BucketService) GetBucketByName(bucketName string) (types.Bucket, error) {
  22. return svc.DB.Bucket().GetByName(svc.DB.DefCtx(), bucketName)
  23. }
  24. func (svc *BucketService) GetUserBuckets() ([]types.Bucket, error) {
  25. return svc.DB.Bucket().GetUserBuckets(svc.DB.DefCtx())
  26. }
  27. // GetBucketPackages 获取指定用户和桶的所有包
  28. // userID: 用户的唯一标识
  29. // bucketID: 桶的唯一标识
  30. // 返回值: 桶的所有包列表和可能发生的错误
  31. func (svc *BucketService) GetBucketPackages(bucketID types.BucketID) ([]types.Package, error) {
  32. return svc.DB.Package().GetBucketPackages(svc.DB.DefCtx(), bucketID)
  33. }
  34. func (svc *BucketService) CreateBucket(bucketName string, createTime time.Time) (types.Bucket, error) {
  35. return svc.DB.Bucket().Create(svc.DB.DefCtx(), bucketName, createTime)
  36. }
  37. // DeleteBucket 删除指定的桶
  38. // userID: 用户的唯一标识
  39. // bucketID: 桶的唯一标识
  40. // 返回值: 可能发生的错误
  41. func (svc *BucketService) DeleteBucket(bucketID types.BucketID) error {
  42. return svc.DB.Bucket().DeleteComplete(svc.DB.DefCtx(), bucketID)
  43. }

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