Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

FileService.cs 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using Microsoft.AspNetCore.Http;
  2. using Microsoft.Extensions.Configuration;
  3. using Microsoft.WindowsAzure.Storage;
  4. using Microsoft.WindowsAzure.Storage.Blob;
  5. namespace Diligent.WebAPI.Business.Services
  6. {
  7. public class FileService : IFileService
  8. {
  9. private readonly IConfiguration _configuration;
  10. public FileService(IConfiguration configuration)
  11. {
  12. _configuration = configuration;
  13. }
  14. public async Task<string> GetCV(string fileName)
  15. {
  16. await using MemoryStream memoryStream = new();
  17. var cloudBlockBlob = GetCloudBlockBlob(fileName);
  18. await cloudBlockBlob.DownloadToStreamAsync(memoryStream);
  19. Stream blobStream = cloudBlockBlob.OpenReadAsync().Result;
  20. return ConvertToBase64(blobStream);
  21. }
  22. public async Task UploadCV(string fileName,IFormFile file)
  23. {
  24. var cloudBlockBlob = GetCloudBlockBlob(fileName);
  25. await using var data = file.OpenReadStream();
  26. await cloudBlockBlob.UploadFromStreamAsync(data);
  27. }
  28. private CloudBlockBlob GetCloudBlockBlob(string fileName)
  29. {
  30. string blobstorageconnection = _configuration.GetValue<string>("BlobConnectionString");
  31. CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(blobstorageconnection);
  32. CloudBlobClient blobClient = cloudStorageAccount.CreateCloudBlobClient();
  33. CloudBlobContainer container = blobClient.GetContainerReference(
  34. _configuration.GetValue<string>("BlobContainerName"));
  35. return container.GetBlockBlobReference(fileName);
  36. }
  37. private static string ConvertToBase64(Stream stream)
  38. {
  39. byte[] bytes;
  40. using (var memoryStream = new MemoryStream())
  41. {
  42. stream.CopyTo(memoryStream);
  43. bytes = memoryStream.ToArray();
  44. }
  45. string base64 = Convert.ToBase64String(bytes);
  46. return base64;
  47. }
  48. }
  49. }