private static void AzureUpload()
{
var accountName = Config.AccountName(Args.Storage);
var accountKey = Config.AccountKey(Args.Storage);
var credentials = new StorageCredentials(accountName, accountKey);
var account = new CloudStorageAccount(credentials, false);
var client = account.CreateCloudBlobClient();
var container = client.GetContainerReference(Args.Container);
var local = Args.LocalFile;
var remote = Args.BlobFile
.Replace("[datetime]", DateTime.UtcNow.ToString("yyyyMMdd-HHmm"));
var attr = File.GetAttributes(local);
var isFolder = ((attr & FileAttributes.Directory) == FileAttributes.Directory);
if (!isFolder)
{
container.UploadFile(
file: local,
blobName: remote);
}
else
{
var files = Directory.GetFiles(local, "*", SearchOption.AllDirectories);
var filesToBlobs = files.Select(
file =>
{
var bloblFileName = file
.Replace(local, string.Empty)
.Replace("\\", "/");
var blobFilePath = remote + bloblFileName;
return(new Tuple <string, string>(file, blobFilePath));
});
foreach (var filesToBlob in filesToBlobs)
{
container.UploadFile(
file: filesToBlob.Item1,
blobName: filesToBlob.Item2);
}
}
}