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

7 months ago
7 months ago
6 months ago
7 months ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package services
  2. import (
  3. "gitlink.org.cn/cloudream/jcs-pub/client/internal/accessstat"
  4. "gitlink.org.cn/cloudream/jcs-pub/client/internal/accesstoken"
  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/publock"
  11. "gitlink.org.cn/cloudream/jcs-pub/client/internal/spacesyncer"
  12. "gitlink.org.cn/cloudream/jcs-pub/client/internal/speedstats"
  13. "gitlink.org.cn/cloudream/jcs-pub/client/internal/ticktock"
  14. "gitlink.org.cn/cloudream/jcs-pub/client/internal/uploader"
  15. "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/storage/pool"
  16. "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/sysevent"
  17. )
  18. // Service 结构体封装了分布锁服务和任务管理服务。
  19. type Service struct {
  20. PubLock *publock.PubLock
  21. Downloader *downloader.Downloader
  22. AccessStat *accessstat.AccessStat
  23. Uploader *uploader.Uploader
  24. StrategySelector *strategy.Selector
  25. UserSpaceMeta *metacache.UserSpaceMeta
  26. DB *db.DB
  27. EvtPub *sysevent.Publisher
  28. EvtWatcher *sysevent.WatcherHost // 为nil表示没有配置Watcher
  29. Mount *mount.Mount
  30. StgPool *pool.Pool
  31. SpaceSyncer *spacesyncer.SpaceSyncer
  32. TickTock *ticktock.TickTock
  33. SpeedStats *speedstats.SpeedStats
  34. AccToken *accesstoken.Keeper
  35. }
  36. func NewService(
  37. publock *publock.PubLock,
  38. downloader *downloader.Downloader,
  39. accStat *accessstat.AccessStat,
  40. uploder *uploader.Uploader,
  41. strategySelector *strategy.Selector,
  42. userSpaceMeta *metacache.UserSpaceMeta,
  43. db *db.DB,
  44. evtPub *sysevent.Publisher,
  45. evtWatcher *sysevent.WatcherHost,
  46. mount *mount.Mount,
  47. stgPool *pool.Pool,
  48. spaceSyncer *spacesyncer.SpaceSyncer,
  49. tickTock *ticktock.TickTock,
  50. speedStats *speedstats.SpeedStats,
  51. accToken *accesstoken.Keeper,
  52. ) *Service {
  53. return &Service{
  54. PubLock: publock,
  55. Downloader: downloader,
  56. AccessStat: accStat,
  57. Uploader: uploder,
  58. StrategySelector: strategySelector,
  59. UserSpaceMeta: userSpaceMeta,
  60. DB: db,
  61. EvtPub: evtPub,
  62. EvtWatcher: evtWatcher,
  63. Mount: mount,
  64. StgPool: stgPool,
  65. SpaceSyncer: spaceSyncer,
  66. TickTock: tickTock,
  67. SpeedStats: speedStats,
  68. AccToken: accToken,
  69. }
  70. }

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