我正在使用Windows Azure将图像存储在我的Windows手机应用程序中。
相机拍摄照片,然后上传所选的照片流。但是它没有丢错但是没有上传?
var blobContainer = CloudStorageContext.Current.Resolver.CreateCloudBlobClient();
var container = blobContainer.GetContainerReference("pics");
var blob = container.GetBlobReference("picture.jpg");
blob.UploadFromStream(e.ChosenPhoto, response => { MessageBox.Show(blob.Uri.ToString()) });
我不知道发生了什么。解析器包含正确的用户,密钥和URL。容器“pics”确实存在,但没有上传图像。弹出的消息框中有一个不存在的URL。
更新 - 这里似乎发布了一个类似(几乎完全相同)的问题 - Uploading a photo stream from camera into azure blob in WP7。但是大写容器名称在这里不是问题,因此解决方案没有解决此问题
答案 0 :(得分:0)
我有一个应用程序(Windows Phone 8),它将拍摄的图像上传到Azure webrole,然后将该图像存储在Azure存储Blob中。下面的代码是服务器如何存储图像。同样,此代码不能在手机上运行,但您可以将其用作参考。
string randomGUID = locationID
+ "-"
+ Guid.NewGuid().ToString();
//Retrieve storage account from application settings
CloudStorageAccount storageAccount = GetStorageAccount();
//Create blob client
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
//Retrieve reference to images container
CloudBlobContainer container = blobClient.GetContainerReference(
RoleEnvironment.GetConfigurationSettingValue("BlobContainer"));
//Retrieve references to the blob inside the container
CloudBlockBlob blockBlob = container.GetBlockBlobReference(randomGUID);
blockBlob.UploadFromStream(imageToUpload);
变量 imageToUpload 的类型为Stream
。
正如您所看到的,这是非常简单的代码。也许您的问题与UploadFromStream
中的lambda表达式有关?