voidkitty/VoidCat/Services/Files/FileStorageStartup.cs
2022-06-08 17:17:53 +01:00

37 lines
1.3 KiB
C#

using VoidCat.Model;
using VoidCat.Services.Abstractions;
using VoidCat.Services.Users;
namespace VoidCat.Services.Files;
public static class FileStorageStartup
{
public static void AddStorage(this IServiceCollection services, VoidSettings settings)
{
services.AddTransient<IFileInfoManager, FileInfoManager>();
if (settings.CloudStorage != default)
{
services.AddTransient<IUserUploadsStore, UserUploadStore>();
// cloud storage
if (settings.CloudStorage.S3 != default)
{
services.AddSingleton<IFileStore, S3FileStore>();
services.AddSingleton<IFileMetadataStore, S3FileMetadataStore>();
}
}
else if (!string.IsNullOrEmpty(settings.Postgres))
{
services.AddTransient<IUserUploadsStore, PostgresUserUploadStore>();
services.AddTransient<IFileStore, LocalDiskFileStore>();
services.AddTransient<IFileMetadataStore, PostgresFileMetadataStore>();
}
else
{
services.AddTransient<IUserUploadsStore, UserUploadStore>();
services.AddTransient<IFileStore, LocalDiskFileStore>();
services.AddTransient<IFileMetadataStore, LocalDiskFileMetadataStore>();
}
}
}