#4253: Made Azure Blob Storage container names configurable.

Fixes #4253
This commit is contained in:
Daniel Stolt
2015-07-17 13:23:21 +01:00
parent e562f6adbd
commit a9eb00c8fa
3 changed files with 21 additions and 12 deletions

View File

@@ -2,13 +2,15 @@
public class Constants {
public const string ShellSettingsStorageConnectionStringSettingName = "Orchard.Azure.Settings.StorageConnectionString";
public const string ShellSettingsContainerName = "sites"; // Container names must be lower case.
public const string ShellSettingsContainerNameSettingName = "Orchard.Azure.Settings.ContainerName";
public const string ShellSettingsDefaultContainerName = "sites"; // Container names must be lower case.
public const string ShellSettingsFileName = "Settings.txt";
public const string MediaStorageFeatureName = "Orchard.Azure.Media";
public const string MediaStorageStorageConnectionStringSettingName = "Orchard.Azure.Media.StorageConnectionString";
public const string MediaStorageRootFolderPathSettingName = "Orchard.Azure.Media.RootFolderPath";
public const string MediaStorageContainerName = "media"; // Container names must be lower case.
public const string MediaStorageContainerNameSettingName = "Orchard.Azure.Media.ContainerName";
public const string MediaStorageDefaultContainerName = "media"; // Container names must be lower case.
public const string MediaStoragePublicHostName = "Orchard.Azure.Media.StoragePublicHostName";
public const string OutputCacheFeatureName = "Orchard.Azure.OutputCache";

View File

@@ -20,7 +20,11 @@ namespace Orchard.Azure.Services.Environment.Configuration {
private readonly IShellSettingsManagerEventHandler _events;
public AzureBlobShellSettingsManager(IMimeTypeProvider mimeTypeProvider, IShellSettingsManagerEventHandler events) {
_fileSystem = new AzureFileSystem(CloudConfigurationManager.GetSetting(Constants.ShellSettingsStorageConnectionStringSettingName), Constants.ShellSettingsContainerName, String.Empty, true, mimeTypeProvider);
var connectionString = CloudConfigurationManager.GetSetting(Constants.ShellSettingsStorageConnectionStringSettingName);
var containerName = CloudConfigurationManager.GetSetting(Constants.ShellSettingsContainerNameSettingName);
if (String.IsNullOrEmpty(containerName))
containerName = Constants.ShellSettingsDefaultContainerName;
_fileSystem = new AzureFileSystem(connectionString, containerName, String.Empty, true, mimeTypeProvider);
_events = events;
Logger = NullLogger.Instance;
}

View File

@@ -11,12 +11,15 @@ namespace Orchard.Azure.Services.FileSystems.Media {
[OrchardSuppressDependency("Orchard.FileSystems.Media.FileSystemStorageProvider")]
public class AzureBlobStorageProvider : AzureFileSystem, IStorageProvider {
public AzureBlobStorageProvider(ShellSettings shellSettings, IMimeTypeProvider mimeTypeProvider, IPlatformConfigurationAccessor pca)
: this(pca.GetSetting(Constants.MediaStorageStorageConnectionStringSettingName, shellSettings.Name, null),
Constants.MediaStorageContainerName,
pca.GetSetting(Constants.MediaStorageRootFolderPathSettingName, shellSettings.Name, null) ?? shellSettings.Name,
public AzureBlobStorageProvider(
ShellSettings shellSettings,
IMimeTypeProvider mimeTypeProvider,
IPlatformConfigurationAccessor platformConfigurationAccessor)
: this(platformConfigurationAccessor.GetSetting(Constants.MediaStorageStorageConnectionStringSettingName, shellSettings.Name, null),
platformConfigurationAccessor.GetSetting(Constants.MediaStorageContainerNameSettingName, shellSettings.Name, null) ?? Constants.MediaStorageDefaultContainerName,
platformConfigurationAccessor.GetSetting(Constants.MediaStorageRootFolderPathSettingName, shellSettings.Name, null) ?? shellSettings.Name,
mimeTypeProvider,
pca.GetSetting(Constants.MediaStoragePublicHostName, shellSettings.Name, null))
platformConfigurationAccessor.GetSetting(Constants.MediaStoragePublicHostName, shellSettings.Name, null))
{
}
@@ -26,10 +29,10 @@ namespace Orchard.Azure.Services.FileSystems.Media {
public bool TrySaveStream(string path, Stream inputStream) {
try {
if (FileExists(path)) {
return false;
}
if (FileExists(path)) {
return false;
}
SaveStream(path, inputStream);
}
catch {