2012-04-10 19 views
0

私はasp.netプロジェクトを持っています。私は紺碧のプラットフォームでそれを公開したい。私のプロジェクトにはさまざまな静的コンテンツが含まれています:イメージ、javascript、css、htmlページなど。私は紺碧のブロブのストレージにこのコンテンツを格納したい。だから、私の質問は次のとおりです: 1)私のアプリケーションからBLOBストレージへのこのコンテンツの移行プロセスを自動化する方法はありますか? 2)BLOBストレージから取得したデータはどのように使用できますか?どんな例も素晴らしいでしょう!ASP.NETプロジェクトからWindows Azureプラットフォームへの静的コンテンツの移行

敬具、 アレクサンダー

答えて

1

まずオフ(SSLを使用している場合)、何をやろうとしているのは、クロスサイトスクリプティング(彼らは異なるドメイン名になります)、またはセキュリティ上の問題を作成することができます。だから、本当にあなたのウェブサイトの残りの部分から静的なファイルを分離したいと思うことを確認してください。

しかし、最も単純なアプローチは、静的コンテンツをWindows Azureストレージブロブコンテナにアップロードするために、いくつかのWindows Azureストレージ管理ユーティリティ(Storage ExplorerまたはCerebrataのStorage Studioがどちらも機能する)を使用することです。次に、パブリッシュするためにそのコンテナのパーミッションを設定して、Webブラウザを持つ誰もがコンテナの内容にアクセスできるようにします。

最後に、コンテンツへのすべての参照を変更して、新しいURIのBLOBストレージを指し、ASP.NET Webロールを展開します。

また、私があなただったら、このアプローチで達成しようとしていることを実際に見ていきます。 BLOBストレージに入れることで、CDNの有効化のようないくつかのことにアクセスできますが、トレードオフとして、IISを介した単純なアクセス制御のように、要求ログによって誰かがダウンロードしているかどうかを知ることができますあなたの画像ファイルはあなたの請求書を試して稼働させるのに数十倍の時間を要します)。このために必要なものがなければ、一般的にはそれに反対することをお勧めします。

+0

返信いただきありがとうございます。シンプルさの更新のために、静的コンテンツをブロブに格納する必要があります。たとえば、私はaspx形式で画像を更新する必要があります。全体のサイトを更新するためのインスタント私はこの写真をブロブで見つけ、それを置き換えるだけです。 –

+0

Storage Analyticsは、 '$ logs'を介してBlobアクセスの際のトレーサビリティを提供します。アナリティクスについての詳細はこちら[こちら](http://blogs.msdn.com/b/windowsazure/archive/2011/08/03/announcing-windows-azure-storage-analytics.aspx) –

1

@ Brentの答えに少し追加する:あなたのWeb Roleインスタンスに対する負荷の軽減など、静的コンテンツをBLOBストレージにオフロードするときに、もう少しメリットがあります。

this similar StackOverflow questionに詳細な回答を書きました。

+0

教えてくださいブロブとCDNにコンテンツを格納するのは同じですか? –

+0

あなたの立場から見ると、実際の手順と場所は同じです。静的コンテンツを保持しているストレージアカウントのCDNを有効にして、作成したCDN名前空間に基づいてURLの「CDN」バージョンを指すようにURLを変更するだけです。その時点で、必要に応じてコンテンツが1つ以上のCDNノードにロードされ、そこから配信されます。注:オブジェクトの有効期限を強制する機能はありません。たとえばJPGのTTLを24時間に設定してから5時間後に新しいJPGをアップロードすると、エンドユーザーは19時間以上更新を見ることができません。 –

0

Brentへのあなたのコメントに照らして、コンテンツをBlobストレージにアップロードしてWebロール経由でプロキシすることを検討してください。あなたはそれをかなりシームレスに達成するためにHttpModuleのようなものを使うことができます。

これは、2つの主な利点があります。

  1. あなたのWebの役割を再ロードまたはロールのリフレッシュにそれらを失うことなくファイルを変更/追加することができます。
  2. サイトを移行する場合、移行前のURLと同じURLにファイルを置くことができます。

短所:

  1. ブロブがアクセスし、ウェブロールにパフォーマンスコストのためにあなたが金銭的コストを払っています。
  2. Azure CDNは使用できません。
  3. BLOBストレージは、一般に、ディスクアクセスよりも低速(レイテンシが高い)です。

これを行うために書いたかなり単純なモジュールがあります。私はどこにでも公表することに慣れていませんが、あなたがこれを行うつもりなら、あなたにコードなどを送ることができます。

+0

各インスタンス内のローカルストレージ内の静的コンテンツをキャッシュすることで、さらに進んで歩み寄ることができます。これにより、頻繁にアクセスされるファイルやレイテンシに対するAzure Storageに対する継続的なヒット率が低下します。このキャッシュをWebアプリケーションルートの下にある書き込み可能(アプリケーション)領域に配置すると、HttpModuleを使用する必要がなくなります。 :) – BrentDaCodeMonkey

+0

あなたはそうかもしれませんが、ブロブが更新されている場合は、キャッシュコヒーレンシーの問題にも対処する必要があります。私は疲れて、簡単な方法で代わりました。 :) しかし、本当に巧妙になりたいのなら、すべてのlocalstorageファイルの条件付き更新を頻繁に行うバックグラウンドプロセス/スレッドを実行することができます。 –

+0

はい、私の電子メールであなたのモジュールを送ってください。[email protected] –

関連する問題