db works, upload works

This commit is contained in:
Alex Bezdieniezhnykh
2024-11-12 22:16:50 +02:00
parent 2336c15aa4
commit ddbf8114ba
15 changed files with 66 additions and 63 deletions
+10 -5
View File
@@ -1,7 +1,7 @@
using Azaion.Common;
using Azaion.Common.Configs;
using Azaion.Common.Entities;
using Azaion.Common.Requests;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Options;
namespace Azaion.Services;
@@ -9,7 +9,7 @@ namespace Azaion.Services;
public interface IResourcesService
{
Task GetEncryptedResource(ResourceEnum resource, string key, Stream outputStream, CancellationToken cancellationToken = default);
Task SaveResource(UploadResourceRequest request, CancellationToken cancellationToken = default);
Task SaveResource(ResourceEnum resourceEnum, IFormFile data, CancellationToken cancellationToken = default);
}
public class ResourcesService(IOptions<ResourcesConfig> resourcesConfig) : IResourcesService
@@ -20,10 +20,15 @@ public class ResourcesService(IOptions<ResourcesConfig> resourcesConfig) : IReso
await fileStream.EncryptTo(outputStream, key, cancellationToken);
}
public async Task SaveResource(UploadResourceRequest request, CancellationToken cancellationToken = default)
public async Task SaveResource(ResourceEnum resourceEnum, IFormFile data, CancellationToken cancellationToken = default)
{
await using var fileStream = new FileStream(GetResourcePath(request.ResourceEnum), FileMode.OpenOrCreate, FileAccess.ReadWrite);
await request.Data.CopyToAsync(fileStream, cancellationToken);
if (data == null)
throw new BusinessException(ExceptionEnum.NoFile, "No file provided!");
if (!Directory.Exists(resourcesConfig.Value.ResourcesFolder))
Directory.CreateDirectory(resourcesConfig.Value.ResourcesFolder);
await using var fileStream = new FileStream(GetResourcePath(resourceEnum), FileMode.OpenOrCreate, FileAccess.ReadWrite);
await data.CopyToAsync(fileStream, cancellationToken);
}
private string GetResourcePath(ResourceEnum resourceEnum)