private static CloudBlockBlob GetCloudBlockBlob(
Uri uri,
CloudBlobClient client,
string subFolder,
string localFile,
string contentType,
Func<string> getSharedAccessSignature)
{
CloudBlobContainer blobContainer = null;
CloudBlockBlob blob = null;
if (client != null)
{
blobContainer = new CloudBlobContainer(uri, client.Credentials);
}
else
{
if (getSharedAccessSignature != null)
{
string signature = getSharedAccessSignature();
blobContainer = new CloudBlobContainer(uri, new StorageCredentials(signature));
}
else
{
blobContainer = new CloudBlobContainer(uri);
}
}
string blobFileName = Path.Combine(subFolder, Path.GetFileName(localFile));
blob = blobContainer.GetBlockBlobReference(blobFileName);
blob.Properties.ContentType = contentType;
return blob;
}