aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Web/Storage/ExtensionMethods.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Tango.Web/Storage/ExtensionMethods.cs')
-rw-r--r--Software/Visual_Studio/Tango.Web/Storage/ExtensionMethods.cs48
1 files changed, 48 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Tango.Web/Storage/ExtensionMethods.cs b/Software/Visual_Studio/Tango.Web/Storage/ExtensionMethods.cs
new file mode 100644
index 000000000..4acd10082
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Web/Storage/ExtensionMethods.cs
@@ -0,0 +1,48 @@
+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 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();
+ }
+ }
+}