diff --git a/src/Infrastructure/BotSharp.Abstraction/Files/Enums/FileStorageEnum.cs b/src/Infrastructure/BotSharp.Abstraction/Files/Enums/FileStorageEnum.cs new file mode 100644 index 00000000..4d2962f9 --- /dev/null +++ b/src/Infrastructure/BotSharp.Abstraction/Files/Enums/FileStorageEnum.cs @@ -0,0 +1,9 @@ +namespace BotSharp.Abstraction.Repositories.Enums; + +public static class FileStorageEnum +{ + public const string LocalFileStorage = nameof(LocalFileStorage); + public const string AmazonS3Storage = nameof(AmazonS3Storage); + public const string AzureBlobStorage = nameof(AzureBlobStorage); + public const string TencentCosStorage = nameof(TencentCosStorage); +} diff --git a/src/Infrastructure/BotSharp.Abstraction/Files/FileStorageSettings.cs b/src/Infrastructure/BotSharp.Abstraction/Files/FileStorageSettings.cs new file mode 100644 index 00000000..9ee037f2 --- /dev/null +++ b/src/Infrastructure/BotSharp.Abstraction/Files/FileStorageSettings.cs @@ -0,0 +1,6 @@ +namespace BotSharp.Abstraction.Files; + +public class FileStorageSettings +{ + public string Default { get; set; } +} diff --git a/src/Infrastructure/BotSharp.Core/Files/FilePlugin.cs b/src/Infrastructure/BotSharp.Core/Files/FilePlugin.cs index a4c7f7af..90397b93 100644 --- a/src/Infrastructure/BotSharp.Core/Files/FilePlugin.cs +++ b/src/Infrastructure/BotSharp.Core/Files/FilePlugin.cs @@ -1,3 +1,4 @@ +using BotSharp.Abstraction.Repositories.Enums; using BotSharp.Core.Files.Services; using Microsoft.Extensions.Configuration; @@ -14,6 +15,12 @@ public class FilePlugin : IBotSharpPlugin public void RegisterDI(IServiceCollection services, IConfiguration config) { - services.AddScoped(); + var myFileStorageSettings = new FileStorageSettings(); + config.Bind("FileStorage", myFileStorageSettings); + + if (myFileStorageSettings.Default == FileStorageEnum.LocalFileStorage) + { + services.AddScoped(); + } } } diff --git a/src/WebStarter/appsettings.json b/src/WebStarter/appsettings.json index b2a97cf6..1488440c 100644 --- a/src/WebStarter/appsettings.json +++ b/src/WebStarter/appsettings.json @@ -230,7 +230,9 @@ "FileRepository": "data", "Assemblies": [ "BotSharp.Core" ] }, - + "FileStorage": { + "Default": "LocalFileStorage" + }, "Qdrant": { "Url": "", "ApiKey": ""