azure blob storage C# example create read update delete files Edit
sample code to create read update delete to blob storage
Sample Code
Here is the sample code to create read update delete files to blob storage.
using Leedhar.IO.File; using Microsoft.Azure; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Blob; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Leedhar.MicrosoftAzure.BlobStorage { public class BlobStorage : IFile { private CloudStorageAccount storageAccount; public BlobStorage(String connectionString) { try { storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting(connectionString)); } catch (Exception e) { throw e; } } public String Read(String BlobName) { try { // Create the table client. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); // Create the table if it doesn't exist. CloudBlobContainer container = blobClient.GetContainerReference(GetContainerName(BlobName)); // Retrieve reference to a blob CloudBlockBlob blockBlob = container.GetBlockBlobReference(GetBlobName(BlobName)); // Read Blob Return UTF8 String String retval = ""; using (var memoryStream = new MemoryStream()) { blockBlob.DownloadToStream(memoryStream); retval = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray()); } return retval; } catch (Exception e) { throw e; } } public int Write(String BlobName, String Data) { try { // Create the table client. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); // Create the table if it doesn't exist. CloudBlobContainer container = blobClient.GetContainerReference(GetContainerName(BlobName)); // Retrieve reference to a blob CloudBlockBlob blockBlob = container.GetBlockBlobReference(GetBlobName(BlobName)); if (container.Exists() == false) return 2; // Write Stream To Blob using (var stream = new MemoryStream()) { using (StreamWriter oStreamWriter = new StreamWriter(stream)) { oStreamWriter.Write(Data); oStreamWriter.Flush(); stream.Position = 0; blockBlob.UploadFromStream(stream); } } return 1; } catch (Exception e) { throw e; } } public int Write(String BlobName, Stream stream) { try { // Create the table client. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); // Create the table if it doesn't exist. CloudBlobContainer container = blobClient.GetContainerReference(GetContainerName(BlobName)); if (container.Exists() == false) return 2; // Retrieve reference to a blob CloudBlockBlob blockBlob = container.GetBlockBlobReference(GetBlobName(BlobName)); // Write Stream To Blob blockBlob.UploadFromStream(stream); return 1; } catch (Exception e) { throw e; } } public int Delete(String BlobName) { try { // Create the table client. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); // Create the table if it doesn't exist. CloudBlobContainer container = blobClient.GetContainerReference(GetContainerName(BlobName)); // Retrieve reference to a blob CloudBlockBlob blockBlob = container.GetBlockBlobReference(GetBlobName(BlobName)); // Delete the blob. blockBlob.Delete(); return 1; } catch (Exception e) { throw e; } } public bool Exists(String BlobName) { try { // Create the table client. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); // Create the table if it doesn't exist. CloudBlobContainer container = blobClient.GetContainerReference(GetContainerName(BlobName)); // Retrieve reference to a blob CloudBlockBlob blockBlob = container.GetBlockBlobReference(GetBlobName(BlobName)); // Delete the blob. if (blockBlob.Exists()) { return true; } else { return false; } } catch (Exception e) { throw e; } } public int CreateFolder(String FolderName) { try { // Create the table client. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); // Create the table if it doesn't exist. CloudBlobContainer container = blobClient.GetContainerReference(FolderName); if (container.Exists()) { container.SetPermissions( new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }); return 2; } else { container.CreateIfNotExists(); container.SetPermissions( new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }); return 1; } } catch (Exception e) { throw e; } } public int DeleteFolder(String FolderName) { try { // Create the table client. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); // Create the table if it doesn't exist. CloudBlobContainer container = blobClient.GetContainerReference(FolderName); if (container.Exists()) { container.DeleteIfExists(); return 1; } else { return 2; } } catch (Exception e) { throw e; } } public bool ExistsFolder(String FolderName) { try { // Create the table client. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); // Create the table if it doesn't exist. CloudBlobContainer container = blobClient.GetContainerReference(FolderName); if (container.Exists()) { return true; } else { return false; } } catch (Exception e) { throw e; } } private String GetContainerName(String BlobName) { if (BlobName.Split('\\')[0].Contains(":") || BlobName.Split('\\')[0] == null || BlobName.Split('\\')[0] == "") { return BlobName.Split('\\')[1]; } else { return BlobName.Split('\\')[0]; } } private String GetBlobName(String BlobName) { int index1 = BlobName.IndexOf('\\'); int index2 = BlobName.IndexOf("\\", index1 1); if (BlobName.Split('\\')[0].Contains(":") || BlobName.Split('\\')[0] == null || BlobName.Split('\\')[0] == "") { return BlobName.Substring(index2 1, (BlobName.Length - index2) - 1).Replace("\\", "//").Replace("//", "/"); } else { return BlobName.Substring(index1 1, (BlobName.Length - index1) - 1).Replace("\\", "//").Replace("//", "/"); } } } }