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 Tango.Web.Storage { public static class ExtensionMethods { public static CloudBlockBlob CreateEmptyBlob(this CloudBlobContainer container, String name) { CloudBlockBlob emptyBlob = container.GetBlockBlobReference(name); using (MemoryStream ms = new MemoryStream()) { emptyBlob.UploadFromStream(ms);//Empty memory stream. Will create an empty blob. } return emptyBlob; } public static CloudBlockBlob UploadNewBlob(this CloudBlobContainer container, Stream stream, String name) { CloudBlockBlob emptyBlob = container.GetBlockBlobReference(name); emptyBlob.UploadFromStream(stream); return emptyBlob; } public static String GenerateReadSignature(this CloudBlockBlob blob, TimeSpan duration) { String signature = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy() { SharedAccessStartTime = DateTime.UtcNow, SharedAccessExpiryTime = DateTime.UtcNow.Add(duration), Permissions = SharedAccessBlobPermissions.Read }); return new Uri(blob.Uri + signature).ToString(); } public static String GenerateWriteSignature(this CloudBlockBlob blob, TimeSpan duration) { String signature = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy() { SharedAccessStartTime = DateTime.UtcNow, SharedAccessExpiryTime = DateTime.UtcNow.Add(duration), Permissions = SharedAccessBlobPermissions.Write }); return new Uri(blob.Uri + signature).ToString(); } } }