2016-04-22 4 views
1

Azure Webロール、Workerロール、Desktop/Mobileアプリケーションからなるマルチテナントシステムがあります。各クライアントアプリケーションは、テナント固有のAzure Blobストレージアカウントにルーティングされる画像をアップロードすることができます。Azure Workerロールで一時ファイルを読み書きする

Azureワーカーロールは、これらのファイルをポーリングして処理します。ファイルシステムのパスまたはストリームのいずれかを必要とする処理には、サードパーティのSDKを使用します。ブロブストレージから直接ストリームを提供することは簡単ですが、SDKはアプリが消費する物理的なメタデータファイルを吐き出すことも期待しています。

これは、SDKがブラックボックスであり、代替手段を提供しないため、問題です。一時ファイルの作業者ロール内にローカルストレージを持たせる方法はありますか?このストレージは、ワーカー・ロールの反復ごとに数秒間必要で、ロールがリサイクルまたはシャットダウンされた場合にリサイクル/廃棄される可能性があります。さらに、ファイルはかなり大きいので(500MB以上)、ブロブの待ち時間は望ましくありません。

いくつかのハックのある回避策が見つかりました。そのうちの最良のものは、ブロブストレージをラップしてファイルシステムとしてアクセスするためのものです。

Web Role App_Dataフォルダに似たファイルシステムに簡単にアクセスできる方法はありますか?

答えて

3

あなたは、ローカルファイルストレージに名前のハンドルを取得するためのAzure Workerロール内からRoleEnvironment.GetLocalResource()を使用することができます。これは、時間の経過とともに変化する可能性のある特定のファイルパスのハードコーディングを避けることができます

RoleEnvironment.GetLocalResource()

幸運!

+0

ありがとうございます。私はこれを試して、元に戻します。 –

関連する問題