FruitBank/Libraries/Nop.Core/Configuration/AzureBlobConfig.cs

56 lines
2.0 KiB
C#

using Newtonsoft.Json;
namespace Nop.Core.Configuration;
/// <summary>
/// Represents Azure Blob storage configuration parameters
/// </summary>
public partial class AzureBlobConfig : IConfig
{
/// <summary>
/// Gets or sets connection string for Azure Blob storage
/// </summary>
public string ConnectionString { get; protected set; } = string.Empty;
/// <summary>
/// Gets or sets container name for Azure Blob storage
/// </summary>
public string ContainerName { get; protected set; } = string.Empty;
/// <summary>
/// Gets or sets end point for Azure Blob storage
/// </summary>
public string EndPoint { get; protected set; } = string.Empty;
/// <summary>
/// Gets or sets whether or the Container Name is appended to the AzureBlobStorageEndPoint when constructing the url
/// </summary>
public bool AppendContainerName { get; protected set; } = true;
/// <summary>
/// Gets or sets whether to store Data Protection Keys in Azure Blob Storage
/// </summary>
public bool StoreDataProtectionKeys { get; protected set; } = false;
/// <summary>
/// Gets or sets the Azure container name for storing Data Prtection Keys (this container should be separate from the container used for media and should be Private)
/// </summary>
public string DataProtectionKeysContainerName { get; protected set; } = string.Empty;
/// <summary>
/// Gets or sets the Azure key vault ID used to encrypt the Data Protection Keys. (this is optional)
/// </summary>
public string DataProtectionKeysVaultId { get; protected set; } = string.Empty;
/// <summary>
/// Gets a value indicating whether we should use Azure Blob storage
/// </summary>
[JsonIgnore]
public bool Enabled => !string.IsNullOrEmpty(ConnectionString);
/// <summary>
/// Whether to use an Azure Key Vault to encrypt the Data Protection Keys
/// </summary>
[JsonIgnore]
public bool DataProtectionKeysEncryptWithVault => !string.IsNullOrEmpty(DataProtectionKeysVaultId);
}