Я использую следующий код для сопоставления медиа-файлов с Azure Blob. Код работает нормально. Тем не менее, я хочу сопоставить только папки, которые не содержат имя "memberonly". Несмотря на проверку состояния, Kentico отображает все каталоги в Azure Blob. Было бы полезно дать возможность выбрать, какие каталоги будут сопоставлены.
Есть ли способ добиться того, что я ищу?
[assembly: RegisterModule(typeof(CustomInitializationModule))]
public partial class CMSModuleLoader
{
public class CustomInitializationModule : Module //CMSLoaderAttribute
{
// Module class constructor, the system registers the module under the name "CustomInit"
public CustomInitializationModule()
: base("CustomInit")
{
}
protected override void OnInit()
{
try
{
string[] subDirectories = Directory.GetDirectories(HttpContext.Current.Server.MapPath("~/ABC/media/"));
if (subDirectories != null)
{
for (int i = 0; i < subDirectories.Length; i++)
{
if (!subDirectories[i].ToLower().Contains("memberonly"))
{
// Creates a new StorageProvider instance
AbstractStorageProvider mediaProvider = new StorageProvider("Azure", "CMS.AzureStorage");
// Specifies the target container
mediaProvider.CustomRootPath = WebConfigurationManager.AppSettings["AzureContainer"];
// Makes the container publicly accessible
mediaProvider.PublicExternalFolderObject = true;
var directoryName = subDirectories[i].Substring(subDirectories[i].LastIndexOf(@"\") + 1);
// Maps a directory to the provider
//C:\Work\ItemGroup\APS\APS_Main_CJD\APS-Main\CMS\APS\media\APS-Image-Library
StorageHelper.MapStoragePath(string.Concat("~/APS/media/", directoryName), mediaProvider);
}
}
}
}
catch (System.Exception ex)
{
}
}
}
}