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

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

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