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 ストレージ サービスと直接通信するためのクラス ライブラリ」と書かれています 。 //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 側では、小さなファイルの場合、HTTP 要求を SAS URL に発行するだけで済みます。HttpWebRequest を使用してそれを行うことができます。Web を検索してみてください。http://blogs.msdn.com/b/devfish/archive/2011/04/07/httpwebrequest-fundamentals-windows-phone-services-consumptionなど、多くのサンプルを見つけることができます。-part-2.aspx .

大きなファイル (64 MB を超える) の場合は、ファイルを小さな断片に分割し、各断片をブロックとしてアップロードしてから、ブロブ リストをコミットする必要があります (PUT ブロック リスト: http://msdn.microsoft.com/en-us /library/windowsazure/dd179467 )。これは退屈な作業ですが、難しい作業ではありません。かなりの数の HTTP リクエストを作成する必要があります。

Windows Phone 用の Windows Azure ツールキット ( http://watwp.codeplex.com/ ) も役立つ場合があります。これには、.NET 用の Windows Azure ライブラリに似たライブラリが含まれています。

于 2012-06-06T02:11:46.447 に答える