mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
#4253: Made Azure Blob Storage container names configurable.
Fixes #4253
This commit is contained in:
@@ -2,13 +2,15 @@
|
|||||||
|
|
||||||
public class Constants {
|
public class Constants {
|
||||||
public const string ShellSettingsStorageConnectionStringSettingName = "Orchard.Azure.Settings.StorageConnectionString";
|
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 ShellSettingsFileName = "Settings.txt";
|
||||||
|
|
||||||
public const string MediaStorageFeatureName = "Orchard.Azure.Media";
|
public const string MediaStorageFeatureName = "Orchard.Azure.Media";
|
||||||
public const string MediaStorageStorageConnectionStringSettingName = "Orchard.Azure.Media.StorageConnectionString";
|
public const string MediaStorageStorageConnectionStringSettingName = "Orchard.Azure.Media.StorageConnectionString";
|
||||||
public const string MediaStorageRootFolderPathSettingName = "Orchard.Azure.Media.RootFolderPath";
|
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 MediaStoragePublicHostName = "Orchard.Azure.Media.StoragePublicHostName";
|
||||||
|
|
||||||
public const string OutputCacheFeatureName = "Orchard.Azure.OutputCache";
|
public const string OutputCacheFeatureName = "Orchard.Azure.OutputCache";
|
||||||
|
|||||||
@@ -20,7 +20,11 @@ namespace Orchard.Azure.Services.Environment.Configuration {
|
|||||||
private readonly IShellSettingsManagerEventHandler _events;
|
private readonly IShellSettingsManagerEventHandler _events;
|
||||||
|
|
||||||
public AzureBlobShellSettingsManager(IMimeTypeProvider mimeTypeProvider, 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;
|
_events = events;
|
||||||
Logger = NullLogger.Instance;
|
Logger = NullLogger.Instance;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,12 +11,15 @@ namespace Orchard.Azure.Services.FileSystems.Media {
|
|||||||
[OrchardSuppressDependency("Orchard.FileSystems.Media.FileSystemStorageProvider")]
|
[OrchardSuppressDependency("Orchard.FileSystems.Media.FileSystemStorageProvider")]
|
||||||
public class AzureBlobStorageProvider : AzureFileSystem, IStorageProvider {
|
public class AzureBlobStorageProvider : AzureFileSystem, IStorageProvider {
|
||||||
|
|
||||||
public AzureBlobStorageProvider(ShellSettings shellSettings, IMimeTypeProvider mimeTypeProvider, IPlatformConfigurationAccessor pca)
|
public AzureBlobStorageProvider(
|
||||||
: this(pca.GetSetting(Constants.MediaStorageStorageConnectionStringSettingName, shellSettings.Name, null),
|
ShellSettings shellSettings,
|
||||||
Constants.MediaStorageContainerName,
|
IMimeTypeProvider mimeTypeProvider,
|
||||||
pca.GetSetting(Constants.MediaStorageRootFolderPathSettingName, shellSettings.Name, null) ?? shellSettings.Name,
|
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,
|
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) {
|
public bool TrySaveStream(string path, Stream inputStream) {
|
||||||
try {
|
try {
|
||||||
if (FileExists(path)) {
|
if (FileExists(path)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
SaveStream(path, inputStream);
|
SaveStream(path, inputStream);
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
|
|||||||
Reference in New Issue
Block a user