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

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

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