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.

service.go 1.6 kB

7 months ago
7 months ago
7 months ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package services
  2. import (
  3. "gitlink.org.cn/cloudream/common/pkgs/distlock"
  4. "gitlink.org.cn/cloudream/jcs-pub/client/internal/accessstat"
  5. "gitlink.org.cn/cloudream/jcs-pub/client/internal/db"
  6. "gitlink.org.cn/cloudream/jcs-pub/client/internal/downloader"
  7. "gitlink.org.cn/cloudream/jcs-pub/client/internal/downloader/strategy"
  8. "gitlink.org.cn/cloudream/jcs-pub/client/internal/metacache"
  9. "gitlink.org.cn/cloudream/jcs-pub/client/internal/mount"
  10. "gitlink.org.cn/cloudream/jcs-pub/client/internal/uploader"
  11. "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/sysevent"
  12. )
  13. // Service 结构体封装了分布锁服务和任务管理服务。
  14. type Service struct {
  15. DistLock *distlock.Service
  16. Downloader *downloader.Downloader
  17. AccessStat *accessstat.AccessStat
  18. Uploader *uploader.Uploader
  19. StrategySelector *strategy.Selector
  20. UserSpaceMeta *metacache.UserSpaceMeta
  21. DB *db.DB
  22. EvtPub *sysevent.Publisher
  23. Mount *mount.Mount
  24. }
  25. func NewService(
  26. distlock *distlock.Service,
  27. downloader *downloader.Downloader,
  28. accStat *accessstat.AccessStat,
  29. uploder *uploader.Uploader,
  30. strategySelector *strategy.Selector,
  31. userSpaceMeta *metacache.UserSpaceMeta,
  32. db *db.DB,
  33. evtPub *sysevent.Publisher,
  34. mount *mount.Mount,
  35. ) *Service {
  36. return &Service{
  37. DistLock: distlock,
  38. Downloader: downloader,
  39. AccessStat: accStat,
  40. Uploader: uploder,
  41. StrategySelector: strategySelector,
  42. UserSpaceMeta: userSpaceMeta,
  43. DB: db,
  44. EvtPub: evtPub,
  45. Mount: mount,
  46. }
  47. }

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