35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using TakeoutSaaS.Module.Storage.Abstractions;
|
|
using TakeoutSaaS.Module.Storage.Options;
|
|
using TakeoutSaaS.Module.Storage.Providers;
|
|
using TakeoutSaaS.Module.Storage.Services;
|
|
|
|
namespace TakeoutSaaS.Module.Storage.Extensions;
|
|
|
|
/// <summary>
|
|
/// 存储模块服务注册扩展。
|
|
/// </summary>
|
|
public static class StorageServiceCollectionExtensions
|
|
{
|
|
/// <summary>
|
|
/// 注册存储模块所需的提供商与配置。
|
|
/// </summary>
|
|
/// <param name="services">服务集合。</param>
|
|
/// <param name="configuration">配置源。</param>
|
|
public static IServiceCollection AddStorageModule(this IServiceCollection services, IConfiguration configuration)
|
|
{
|
|
services.AddOptions<StorageOptions>()
|
|
.Bind(configuration.GetSection("Storage"))
|
|
.ValidateDataAnnotations()
|
|
.ValidateOnStart();
|
|
|
|
services.AddSingleton<IObjectStorageProvider, TencentCosStorageProvider>();
|
|
services.AddSingleton<IObjectStorageProvider, QiniuKodoStorageProvider>();
|
|
services.AddSingleton<IObjectStorageProvider, AliyunOssStorageProvider>();
|
|
services.AddSingleton<IStorageProviderResolver, StorageProviderResolver>();
|
|
|
|
return services;
|
|
}
|
|
}
|