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.

storage_feature.go 1.1 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package cdssdk
  2. import (
  3. "gitlink.org.cn/cloudream/common/pkgs/types"
  4. "gitlink.org.cn/cloudream/common/utils/serder"
  5. )
  6. // 存储服务特性
  7. type StorageFeature interface {
  8. GetType() string
  9. // 输出调试用的字符串,不要包含敏感信息
  10. String() string
  11. }
  12. var _ = serder.UseTypeUnionInternallyTagged(types.Ref(types.NewTypeUnion[StorageFeature](
  13. (*BypassUploadFeature)(nil),
  14. (*MultipartUploadFeature)(nil),
  15. )), "type")
  16. // 存储服务支持被非MasterHub直接上传文件
  17. type BypassUploadFeature struct {
  18. serder.Metadata `union:"BypassUpload"`
  19. Type string `json:"type"`
  20. // 存放上传文件的临时目录
  21. TempRoot string `json:"tempRoot"`
  22. }
  23. func (f *BypassUploadFeature) GetType() string {
  24. return "BypassUpload"
  25. }
  26. func (f *BypassUploadFeature) String() string {
  27. return "BypassUpload"
  28. }
  29. // 存储服务支持分段上传
  30. type MultipartUploadFeature struct {
  31. serder.Metadata `union:"MultipartUpload"`
  32. Type string `json:"type"`
  33. }
  34. func (f *MultipartUploadFeature) GetType() string {
  35. return "MultipartUpload"
  36. }
  37. func (f *MultipartUploadFeature) String() string {
  38. return "MultipartUpload"
  39. }