protected string GetSasUrlStr(string storageName, string storageKey, string containerName, string blobName)
{
var storageClient = AzureSession.ClientFactory.CreateArmClient<StorageManagementClient>(DefaultProfile.Context,
AzureEnvironment.Endpoint.ResourceManager);
var cred = new StorageCredentials(storageName, storageKey);
var storageAccount = string.IsNullOrEmpty(this.StorageEndpointSuffix)
? new CloudStorageAccount(cred, true)
: new CloudStorageAccount(cred, this.StorageEndpointSuffix, true);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference(containerName);
var cloudBlob = container.GetBlockBlobReference(blobName);
var sasToken = cloudBlob.GetSharedAccessSignature(
new SharedAccessBlobPolicy()
{
SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24.0),
Permissions = SharedAccessBlobPermissions.Read
});
// Try not to use a Uri object in order to keep the following
// special characters in the SAS signature section:
// '+' -> '%2B'
// '/' -> '%2F'
// '=' -> '%3D'
return cloudBlob.Uri + sasToken;
}