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.

public_storage.go 1.1 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package cdssdk
  2. import (
  3. "fmt"
  4. "gitlink.org.cn/cloudream/common/pkgs/types"
  5. "gitlink.org.cn/cloudream/common/utils/serder"
  6. )
  7. type PublicStoreConfig interface {
  8. GetPublicStoreType() string
  9. // 输出调试用的字符串,不要包含敏感信息
  10. String() string
  11. }
  12. var _ = serder.UseTypeUnionInternallyTagged(types.Ref(types.NewTypeUnion[PublicStoreConfig](
  13. (*LocalPublicStorage)(nil),
  14. (*S3PublicStorage)(nil),
  15. )), "type")
  16. type LocalPublicStorage struct {
  17. serder.Metadata `union:"Local"`
  18. Type string `json:"type"`
  19. // 调度Package时的Package的根路径
  20. LoadBase string `json:"loadBase"`
  21. }
  22. func (s *LocalPublicStorage) GetPublicStoreType() string {
  23. return "Local"
  24. }
  25. func (s *LocalPublicStorage) String() string {
  26. return fmt.Sprintf("Local[LoadBase=%v]", s.LoadBase)
  27. }
  28. type S3PublicStorage struct {
  29. serder.Metadata `union:"S3"`
  30. Type string `json:"type"`
  31. LoadBase string `json:"loadBase"`
  32. }
  33. func (s *S3PublicStorage) GetPublicStoreType() string {
  34. return "S3"
  35. }
  36. func (s *S3PublicStorage) String() string {
  37. return fmt.Sprintf("S3[LoadBase=%v]", s.LoadBase)
  38. }