static BlobUtility() { CloudStorage = Microsoft.WindowsAzure.Storage.CloudStorageAccount.Parse(Startup.AzureStorageConnectionString); CloudBlobClient = CloudStorage.CreateCloudBlobClient(); CloudBlobContainer = CloudBlobClient.GetContainerReference(Startup.BlobName); var res = CloudBlobContainer.CreateIfNotExistsAsync().Result; }
} // Run private static string GetSASToken(string containerName, string customerWhitelistIPAddressMinimum, string customerWhitelistIPAddressMaximum, int tokenExpireTimeInMinutes, string cloudAccountName, string cloudKey) { Microsoft.WindowsAzure.Storage.Auth.StorageCredentials storageCredentials = new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(cloudAccountName, cloudKey); Microsoft.WindowsAzure.Storage.CloudStorageAccount storageAccount = null; if (cloudAccountName == "devstoreaccount1") { storageAccount = new Microsoft.WindowsAzure.Storage.CloudStorageAccount(storageCredentials, new Uri("http://127.0.0.1:10000/devstoreaccount1"), new Uri("http://127.0.0.1:10001/devstoreaccount1"), new Uri("http://127.0.0.1:10002/devstoreaccount1"), new Uri("http://127.0.0.1:10003/devstoreaccount1")); } else { storageAccount = new Microsoft.WindowsAzure.Storage.CloudStorageAccount(storageCredentials, true); } Microsoft.WindowsAzure.Storage.Blob.CloudBlobClient blobStorage = storageAccount.CreateCloudBlobClient(); blobStorage.DefaultRequestOptions.RetryPolicy = new Microsoft.WindowsAzure.Storage.RetryPolicies.LinearRetry(TimeSpan.FromSeconds(1), 10); Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer container = blobStorage.GetContainerReference(containerName); container.CreateIfNotExistsAsync().Wait(); Microsoft.WindowsAzure.Storage.Blob.SharedAccessBlobPolicy policy = new Microsoft.WindowsAzure.Storage.Blob.SharedAccessBlobPolicy(); policy.Permissions = Microsoft.WindowsAzure.Storage.Blob.SharedAccessBlobPermissions.Write | Microsoft.WindowsAzure.Storage.Blob.SharedAccessBlobPermissions.List; policy.SharedAccessStartTime = DateTimeOffset.UtcNow.AddMinutes(-5); // always do in the past to prevent errors policy.SharedAccessExpiryTime = DateTimeOffset.UtcNow.AddMinutes(tokenExpireTimeInMinutes); string sasToken = null; if (string.IsNullOrWhiteSpace(customerWhitelistIPAddressMinimum) || string.IsNullOrWhiteSpace(customerWhitelistIPAddressMaximum) || cloudAccountName == "devstoreaccount1") { sasToken = container.GetSharedAccessSignature(policy); } else { Microsoft.WindowsAzure.Storage.IPAddressOrRange iPAddressOrRange = new Microsoft.WindowsAzure.Storage.IPAddressOrRange(customerWhitelistIPAddressMinimum, customerWhitelistIPAddressMaximum); sasToken = container.GetSharedAccessSignature(policy, null, Microsoft.WindowsAzure.Storage.SharedAccessProtocol.HttpsOnly, iPAddressOrRange); } // string url = "https://" + cloudAccountName + ".blob.core.windows.net" + sasToken; return(sasToken); }