Is your feature request related to a problem? Please describe.
Need common abstractions for file operations like CreateDirectory
, SaveFileToPath
.
Describe the solution you'd like
// Program.cs
services.AddCqrs(typeof(SaveFileCommandHandler).Assembly).AddFileProvider<AliyunOssFileProvider>();
// handler
private readonly IFileProvider _fileProvider;
public SaveFileCommandHandler(IFileProvider fileProvider)
{
_fileProvider = fileProvider;
}
public async Task Handle(SaveFileCommand request, CancellationToken cancellationToken)
{
var exists = _fileProvider.ExistsAsync(request.FilePath);
if (exists)
{
return CommandResponse<byte[], FileError>.Fail(FileError.FileAlreadyExists);
}
var fileBytes = _fileProvider.ReadBytesAsync(request.FilePath);
return CommandResponse<byte[], FileError>(fileBytes);
}