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

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

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