package cdssdk import ( "fmt" "gitlink.org.cn/cloudream/common/pkgs/types" "gitlink.org.cn/cloudream/common/utils/serder" ) type PublicStoreConfig interface { GetPublicStoreType() string // 输出调试用的字符串,不要包含敏感信息 String() string } var _ = serder.UseTypeUnionInternallyTagged(types.Ref(types.NewTypeUnion[PublicStoreConfig]( (*LocalPublicStorage)(nil), (*S3PublicStorage)(nil), )), "type") type LocalPublicStorage struct { serder.Metadata `union:"Local"` Type string `json:"type"` // 调度Package时的Package的根路径 LoadBase string `json:"loadBase"` } func (s *LocalPublicStorage) GetPublicStoreType() string { return "Local" } func (s *LocalPublicStorage) String() string { return fmt.Sprintf("Local[LoadBase=%v]", s.LoadBase) } type S3PublicStorage struct { serder.Metadata `union:"S3"` Type string `json:"type"` LoadBase string `json:"loadBase"` } func (s *S3PublicStorage) GetPublicStoreType() string { return "S3" } func (s *S3PublicStorage) String() string { return fmt.Sprintf("S3[LoadBase=%v]", s.LoadBase) }