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

5 months ago
5 months ago
7 months ago
5 months ago
7 months ago
6 months ago
7 months ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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/spacesyncer"
  11. "gitlink.org.cn/cloudream/jcs-pub/client/internal/speedstats"
  12. "gitlink.org.cn/cloudream/jcs-pub/client/internal/ticktock"
  13. "gitlink.org.cn/cloudream/jcs-pub/client/internal/uploader"
  14. "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/publock"
  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.Service
  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. Mount *mount.Mount
  29. StgPool *pool.Pool
  30. SpaceSyncer *spacesyncer.SpaceSyncer
  31. TickTock *ticktock.TickTock
  32. SpeedStats *speedstats.SpeedStats
  33. AccToken *accesstoken.Keeper
  34. }
  35. func NewService(
  36. publock *publock.Service,
  37. downloader *downloader.Downloader,
  38. accStat *accessstat.AccessStat,
  39. uploder *uploader.Uploader,
  40. strategySelector *strategy.Selector,
  41. userSpaceMeta *metacache.UserSpaceMeta,
  42. db *db.DB,
  43. evtPub *sysevent.Publisher,
  44. mount *mount.Mount,
  45. stgPool *pool.Pool,
  46. spaceSyncer *spacesyncer.SpaceSyncer,
  47. tickTock *ticktock.TickTock,
  48. speedStats *speedstats.SpeedStats,
  49. accToken *accesstoken.Keeper,
  50. ) *Service {
  51. return &Service{
  52. PubLock: publock,
  53. Downloader: downloader,
  54. AccessStat: accStat,
  55. Uploader: uploder,
  56. StrategySelector: strategySelector,
  57. UserSpaceMeta: userSpaceMeta,
  58. DB: db,
  59. EvtPub: evtPub,
  60. Mount: mount,
  61. StgPool: stgPool,
  62. SpaceSyncer: spaceSyncer,
  63. TickTock: tickTock,
  64. SpeedStats: speedStats,
  65. AccToken: accToken,
  66. }
  67. }

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