Guest User

Untitled

a guest
Jul 16th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5. using Microsoft.WindowsAzure.Storage;
  6. using Microsoft.WindowsAzure.Storage.Blob;
  7. using MspMobileApp.Utils;
  8.  
  9. namespace MspMobileApp.Infrastructure.Services
  10. {
  11. public static class BlobStorangeService
  12. {
  13. public static CloudBlobContainer GetContainer(string cont)
  14. {
  15. var account = CloudStorageAccount.Parse(Config.SharedStorangeConnectionTest);
  16. var client = account.CreateCloudBlobClient();
  17. return client.GetContainerReference(cont.ToLower());
  18. }
  19.  
  20. public static async Task<string> UploadFileAsync(Stream stream, string containerName, CancellationToken token)
  21. {
  22. var name = "Cancelled";
  23.  
  24. try
  25. {
  26. var container = GetContainer(containerName);
  27. await container.CreateIfNotExistsAsync(
  28. BlobContainerPublicAccessType.Container,
  29. new BlobRequestOptions(),
  30. new OperationContext(), token);
  31.  
  32. var ct = DateTime.Now;
  33. name = $@"{ct.Year}.{ct.Month}.{ct.Day}/{Guid.NewGuid().ToString().ToUpper()}.jpg";
  34.  
  35. var fileBlob = container.GetBlockBlobReference(name);
  36. fileBlob.Properties.ContentType = "image/jpeg";
  37. name = fileBlob.Uri.ToString();
  38.  
  39. // Debug.WriteLine("Upload Start");
  40. await fileBlob.UploadFromStreamAsync(stream,
  41. AccessCondition.GenerateEmptyCondition(), new BlobRequestOptions(),
  42. new OperationContext(), token);
  43. }
  44. catch (Exception)
  45. {
  46. name = "Load Error";
  47. }
  48. return name;
  49. }
  50.  
  51. public static async Task<string> UploadFileAsync(byte[] array, string containerName, string name = "")
  52. {
  53. var container = GetContainer(containerName);
  54. await container.CreateIfNotExistsAsync();
  55.  
  56. if (string.IsNullOrEmpty(name))
  57. name = Guid.NewGuid().ToString();
  58.  
  59. var fileBlob = container.GetBlockBlobReference(name);
  60. await fileBlob.UploadFromByteArrayAsync(array, 0, array.Length);
  61.  
  62. return name;
  63. }
  64. }
  65. }
Add Comment
Please, Sign In to add comment