using Newtonsoft.Json; using System.Collections.Generic; using Vinno.vCloud.Common.Storage.ObjectStorageInfo; using Vinno.vCloud.Protocol.Infrastructures; namespace Vinno.vCloud.Common.Storage.Upload { public class StorageInfo { private string _config; /// /// Storage Type : Default and Ufile /// public StorageType StorageType { get; set; } /// /// Storage server url for default, empty for ufile /// public string Url { get; set; } /// /// Empty for default, storage config for cloud storage /// public string Config { get { return _config; } set { if (_config != value) { _config = value; var storageConfigRoot = JsonConvert.DeserializeObject(_config); if (storageConfigRoot != null) { StorageUploadConfig = storageConfigRoot.StorageUploadConfig; StorageNodeItems = storageConfigRoot.StorageNodeItems; IsUCloudServer = storageConfigRoot.IsTencentServer; IsInteralServer = storageConfigRoot.IsInteralServer; } } } } /// /// upload request config /// public StorageUploadConfig StorageUploadConfig { get; private set; } /// /// interal/cloud storage nodes,be used for mapping CDN/Inner/Default url /// public IList StorageNodeItems { get; private set; } /// /// is ucloud server,be user for check use cloud inner url /// public bool IsUCloudServer { get; set; } /// /// is interal server,be user for check use interal url /// public bool IsInteralServer { get; set; } public override string ToString() { return $"s:{StorageType},u:{Url},c:{Config} "; } } }