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} ";
}
}
}