The best way to access a blob is by accessing the storage with the container name and the blob reference, as explained here: https://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/#download-blobs In your code you need to change the blob reference to the name you set when uploading, no to the uri.
CloudBlockBlob blob = container.GetBlockBlobReference(data.Uri.ToString());
use this instead:
CloudBlockBlob blob = container.GetBlockBlobReference("yourfile.jpg");
If you have the blob url, and the container is set to public access you can get the data by simply downloading it using a regular http client.