static void Main(string[] args)
{
string command;
string fileName;
int parallelFactor = ConfigHelper.ParallelFactor;
var sw = new Stopwatch();
sw.Start();
if (args.Length == 4)
{
command = args[0];
fileName = args[1];
var containerName = args[2];
var blobName = args[3];
var azureOps = new AzureOps();
switch (command)
{
case "upload":
var bytesUploaded = azureOps.UploadFile(containerName, blobName, fileName, parallelFactor);
Console.WriteLine("Uploaded {0} bytes", bytesUploaded);
break;
case "download":
var bytesDownloaded = azureOps.DownloadBlob(containerName, blobName, fileName, parallelFactor);
Console.WriteLine("Downloaded {0} bytes", bytesDownloaded);
break;
case "estimate":
var estimate = azureOps.CalculateDeltaSize(containerName, blobName, fileName);
Console.WriteLine( string.Format("Estimate to upload {0} bytes", estimate));
break;
default:
ShowExamples();
break;
}
}
else if (args.Length == 3)
{
command = args[0];
fileName = args[1];
var localSigPath = args[2];
var azureOps = new AzureOps();
switch (command)
{
case "estimatelocal":
var estimatelocal = azureOps.CalculateDeltaSizeFromLocalSig(localSigPath, fileName);
Console.WriteLine(string.Format("Estimate to upload {0} bytes", estimatelocal));
break;
case "createdeltasig":
var sig = azureOps.GenerateDeltaSigFromLocalResources(localSigPath, fileName);
var sigFileName = fileName + ".sig";
using (Stream s = new FileStream(sigFileName, FileMode.Create))
{
SerializationHelper.WriteBinarySizedBasedSignature(sig, s);
}
break;
case "showblocklist":
azureOps.GetBlockListInfo(args[1], args[2]);
break;
case "defrag":
azureOps.DefragBlob(args[1], args[2]);
break;
default:
ShowExamples();
break;
}
}
else
if (args.Length == 2)
{
command = args[0];
fileName = args[1];
var azureOps = new AzureOps();
switch (command)
{
case "createsig":
var sig = CommonOps.CreateSignatureForLocalFile(fileName);
var sigFileName = fileName + ".sig";
using (Stream s = new FileStream(sigFileName, FileMode.Create))
{
SerializationHelper.WriteBinarySizedBasedSignature(sig, s);
}
break;
case "showsig":
using (var fs = new FileStream(fileName, FileMode.Open))
{
var loadedSig = SerializationHelper.ReadSizeBasedBinarySignature(fs);
foreach( var sigSize in loadedSig.Signatures)
{
foreach( var s in sigSize.Value.SignatureList.OrderBy( s => s.Offset))
{
Console.WriteLine(string.Format("{0}:{1}", s.Offset, s.Size));
}
}
}
break;
case "defraglocal":
azureOps.DefragBlob(args[1]);
break;
default:
ShowExamples();
break;
}
}
else
{
ShowExamples();
}
sw.Stop();
Console.WriteLine("Took {0}s", (double)sw.ElapsedMilliseconds / 1000.0);
}