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

2 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // services 包提供了服务层的封装,主要负责协调分布锁和任务管理器之间的交互。
  2. package services
  3. import (
  4. "gitlink.org.cn/cloudream/common/pkgs/distlock"
  5. "gitlink.org.cn/cloudream/storage/client/internal/task"
  6. "gitlink.org.cn/cloudream/storage/common/pkgs/accessstat"
  7. "gitlink.org.cn/cloudream/storage/common/pkgs/downloader"
  8. "gitlink.org.cn/cloudream/storage/common/pkgs/downloader/strategy"
  9. "gitlink.org.cn/cloudream/storage/common/pkgs/metacache"
  10. "gitlink.org.cn/cloudream/storage/common/pkgs/uploader"
  11. )
  12. // Service 结构体封装了分布锁服务和任务管理服务。
  13. type Service struct {
  14. DistLock *distlock.Service
  15. TaskMgr *task.Manager
  16. Downloader *downloader.Downloader
  17. AccessStat *accessstat.AccessStat
  18. Uploader *uploader.Uploader
  19. StrategySelector *strategy.Selector
  20. StorageMeta *metacache.StorageMeta
  21. }
  22. func NewService(
  23. distlock *distlock.Service,
  24. taskMgr *task.Manager,
  25. downloader *downloader.Downloader,
  26. accStat *accessstat.AccessStat,
  27. uploder *uploader.Uploader,
  28. strategySelector *strategy.Selector,
  29. storageMeta *metacache.StorageMeta,
  30. ) (*Service, error) {
  31. return &Service{
  32. DistLock: distlock,
  33. TaskMgr: taskMgr,
  34. Downloader: downloader,
  35. AccessStat: accStat,
  36. Uploader: uploder,
  37. StrategySelector: strategySelector,
  38. StorageMeta: storageMeta,
  39. }, nil
  40. }

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