public async Task <UploadFileViewModel> Handle(UploadFileDto request, CancellationToken cancellationToken)
        {
            var bucketExists = await _client.BucketExistsAsync(request.FileType, cancellationToken);

            if (!bucketExists)
            {
                await _client.MakeBucketAsync(request.FileType, cancellationToken : cancellationToken);
            }

            var name   = Guid.NewGuid().ToString();
            var stream = request.File.OpenReadStream();

            await _client.PutObjectAsync(request.FileType, name, stream, stream.Length, cancellationToken : cancellationToken);

            var file = _mapper.Map <File>(request);

            file.Name        = name;
            file.ContentType = request.File.ContentType;
            file.Extension   = Path.GetExtension(request.File.FileName);
            // file.Extension = request.File.Headers.

            await _context.AddAsync(file);

            await _context.SaveChangesAsync();

            return(new UploadFileViewModel {
                Id = $"file.{request.FileType}.{name}.{file.Id}"
            });
        }