In my previous post I covered the high level theory for an efficient method of updating Azure Block Blobs. (This theory can be used against most cloud storage providers as long as their blob API’s allow partial uploads/downloads).
The implementation of what was described is now available on Github.
I’ll go through the implementation specifics in a later post, but for those who want to try out BlobSync, simply clone the github repo. Compile (I’m using Visual Studio 2013) and you’ll end up with a binary “BlobSyncCmd.exe”. Some examples of using the command are:
blobsynccmd upload c:\temp\myfile mycontainer myblob
This will upload the local “myfile” to Azure, in the appropriate container with the appropriate name.
Then, feel free to modify your local file and upload it again. If you use any network monitoring tools you should see a dramatic reduction in the uploaded bytes (assuming you don’t modify the entire file).
Equally you can run the command:
blobsynccmd download c:\temp\myfile mycontainer myblob
This will download the blob and reuse as much of “myfile” as it can. Currently for testing purposes it won’t replace myfile but will create myfile.new
More to come.