0

我可以使用以下代码从 Azure MVC Web 角色使用 SAS 将照片上传到 blob:

using (var WS = new HLServiceClient())
{    
     /* Getting a SAS Write URI */
     var sasUri = WS.GetSasUriForBlobWrite(HLServiceReference.BusinessLogicMediaUsage.News, fileName);
     var writeBlob = new CloudBlob(sasUri);
     writeBlob.UploadFromStream(fileData.InputStream);
}

我想从 WP 应用程序做同样的事情。但我不知道该怎么做。我没有很多编程技巧。

你能告诉我如何使用 SAS 从 WP 应用程序将照片上传到 blob 吗?

NuGet 上有一个适用于 Windows Phone 的 Windows Azure 存储客户端库:Phone.Storage,上面写着“Windows Phone 的类库以直接与 Windows Azure 存储服务通信”,我希望找到一个简单的解决方案: http: //www.nuget.org/packages/Phone.Storage

我在 Phone.Storage NuGet 上找到了一个视频教程:http: //channel9.msdn.com/posts/Using-the-Windows-Phone-Storage-NuGets-for-Windows-Azure

还有一个示例应用程序演示了 Phone.Storage NuGet 的用法。 http://www.nuget.org/packages/Phone.Storage.Sample

但是,如果我可以在我的应用程序场景中实现它,它会避开我吗?

4

1 回答 1

1

首先,您需要从托管服务生成 SAS。您可以使用 CloudBlob.GetSharedAccessSignature 方法(有关示例,请参阅http://msdn.microsoft.com/en-us/library/windowsazure/ee772922.aspx)。

在 Windows Phone 端,对于小文件,您只需向 SAS URL 发出 HTTP 请求。您可以使用 HttpWebRequest 来做到这一点。尝试在网上搜索,可以找到很多示例,例如http://blogs.msdn.com/b/devfish/archive/2011/04/07/httpwebrequest-fundamentals-windows-phone-services-consumption -part-2.aspx

对于大文件(大于 64 MB),您需要将它们分成较小的块,将每个块作为一个块上传,然后提交 blob 列表(PUT 块列表:http: //msdn.microsoft.com/en-us /图书馆/windowsazure/dd179467)。这是一项乏味但并不困难的任务。您需要创建相当多的 HTTP 请求。

适用于 Windows Phone 的 Windows Azure 工具包也可能有所帮助:http ://watwp.codeplex.com/ 。它包含一个类似于 .NET 的 Windows Azure 库的库。

于 2012-06-06T02:11:46.447 回答