StorageInfo.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using Newtonsoft.Json;
  2. using System.Collections.Generic;
  3. using Vinno.vCloud.Common.Storage.ObjectStorageInfo;
  4. using Vinno.vCloud.Protocol.Infrastructures;
  5. namespace Vinno.vCloud.Common.Storage.Upload
  6. {
  7. public class StorageInfo
  8. {
  9. private string _config;
  10. /// <summary>
  11. /// Storage Type : Default and Ufile
  12. /// </summary>
  13. public StorageType StorageType { get; set; }
  14. /// <summary>
  15. /// Storage server url for default, empty for ufile
  16. /// </summary>
  17. public string Url { get; set; }
  18. /// <summary>
  19. /// Empty for default, storage config for cloud storage
  20. /// </summary>
  21. public string Config
  22. {
  23. get
  24. {
  25. return _config;
  26. }
  27. set
  28. {
  29. if (_config != value)
  30. {
  31. _config = value;
  32. var storageConfigRoot = JsonConvert.DeserializeObject<StorageConfig>(_config);
  33. if (storageConfigRoot != null)
  34. {
  35. StorageUploadConfig = storageConfigRoot.StorageUploadConfig;
  36. StorageNodeItems = storageConfigRoot.StorageNodeItems;
  37. IsUCloudServer = storageConfigRoot.IsTencentServer;
  38. IsInteralServer = storageConfigRoot.IsInteralServer;
  39. }
  40. }
  41. }
  42. }
  43. /// <summary>
  44. /// upload request config
  45. /// </summary>
  46. public StorageUploadConfig StorageUploadConfig { get; private set; }
  47. /// <summary>
  48. /// interal/cloud storage nodes,be used for mapping CDN/Inner/Default url
  49. /// </summary>
  50. public IList<StorageNodeItem> StorageNodeItems { get; private set; }
  51. /// <summary>
  52. /// is ucloud server,be user for check use cloud inner url
  53. /// </summary>
  54. public bool IsUCloudServer { get; set; }
  55. /// <summary>
  56. /// is interal server,be user for check use interal url
  57. /// </summary>
  58. public bool IsInteralServer { get; set; }
  59. public override string ToString()
  60. {
  61. return $"s:{StorageType},u:{Url},c:{Config} ";
  62. }
  63. }
  64. }