... using Microsoft.WindowsAzure.Storage.Auth; using Microsoft.WindowsAzure.Storage.Blob; ... private async void OnTakePhotoClick(object sender, RoutedEventArgs e) { //Take photo or video CameraCaptureUI cameraCapture = new CameraCaptureUI(); StorageFile media = await cameraCapture.CaptureFileAsync(CameraCaptureUIMode.PhotoOrVideo); if (media != null) { //add todo item to trigger insert operation which returns item.SAS var todoItem = new TodoItem() { ContainerName = "mypics", ResourceName = media.Name, Text = "NA", }; await todoTable.InsertAsync(todoItem); items.Add(todoItem); //Upload image direct to blob storage using SAS and the Storage Client library for Windows CTP //Get a stream of the image just taken using (var fileStream = await media.OpenStreamForReadAsync()) { var sasUri = new Uri(todoItem.SAS); //Our credential for the upload is our SAS token StorageCredentials cred = new StorageCredentials(sasUri.Query.Substring(1)); CloudBlobContainer container = new CloudBlobContainer(new Uri(string.Format("https://{0}/{1}", sasUri.Host, todoItem.ContainerName)), cred); CloudBlockBlob blobFromSASCredential = container.GetBlockBlobReference(todoItem.ResourceName); await blobFromSASCredential.UploadFromStreamAsync(fileStream.AsInputStream()); } } }