2012-04-05 10 views
0

VHDドライブのサーバーパスを取得します。私は紺碧のWebアプリケーションに取り組んでいます。いくつかのファイルをアップロードしてTest.VHDドライブに保存しています(たとえば)。これは、いくつかのブロブコンテナの「ドライブ」内のクラウドドライブです(たとえば、)。VHDドライブのサーバーパス

driveLetter = drive.Mount(localCache.MaximumSizeInMegabytes - 20, DriveMountOptions.Force); 

「driveLetter」は「A:\」(たとえば)です。今、私はすべてのpdfファイル名をページ上のリンクボタンとして表示しています。私は

window.open(pdfPath, pdfName, 'scrollbars=yes, resizable=yes'); 

javascript関数を使用して、ブラウザでそのpdfファイルを開きたい、それらのファイルをクリックするだけで私の質問は、私は「pdfPath」パラメータとして渡す必要があります何ですか?

"A:\ Uploads \ pdfName.pdf"というパスがあります。しかし、私はそれを渡すことはできません。私はそれをユーザーが見ることができるようにhttp://servername:port/pathのように渡さなければなりません。

しかし、http://servername:port/pathのようなリンクに変換する方法がわかりません。これを行うことで、私はブラウザでpdfを見ることができます。

助けてください。

ありがとうございます。

答えて

0

私はドライブ、これは直接あなたの質問に答えていませんが、...私はあなたがAzureのに書き込むことでやっているものの中にいくつかの制限を参照してくださいするつもりだと思う実現:

  • 任意の時点で、1つのRoleインスタンスのみがvhdへの書き込みアクセス権を持つことができます。これは、インスタンスごとに一意のvhdを持たない限り、インスタンスごとのソリューションスケールを意味します(または、各インスタンスは読み取り専用のスナップショットを作成するだけです)
  • 個々のファイルにアクセスするには、 vhd内のファイルへの直接リンクを外部に提供することはできません
  • ファイルを管理するには、Azureドライブをマウントする必要があります。つまり、Windows Azure以外のコードからファイルを管理することはできません(AzureドライブはWindows Azure Roleインスタンスのみでマウント可能です)。

個別のファイルを個々のBLOBに書き込むことをお勧めします。これはあなたのシナリオではAzureのドライブを使用していくつかの利点ました:

  • 任意のインスタンスが読み/個々のファイル(別のブロブ内の各ファイル)
  • を書くことができますあなたのウェブに直接ファイルのURLのを埋め込むの選択肢を持っていますページ。これにより、ロールインスタンスの1つを経由せずにblobに直接アクセスできます(IISは必要ないため、前述のインスタンスからロードされます)
  • 個々のブロブをプライベートにすることができます。共有アクセスシグネチャを介してプライベートブロブにURLを提供
  • 個々のブロブをリモートで管理することができます。また、これを行うためのサードパーティツールがいくつか用意されています。
  • 希望する場合は、ストレージのCDN(エッジキャッシング)を有効にできます。これにより、ソースBLOBに直接ではなく、URLをCDNリンクに向けることができます。これは公開されたブロブに限られています。
+0

あなたの提案をありがとう!私はあなたが提案したことを何でもした。私はVHDの解決策を残し、ブロブコンテナでブロブを使用し始めました。すべてのお手伝いをしてくれてありがとう! – Dhananjay

0

そこには少し混乱があります。

azureドライブは、技術的にはAzure BLOBストレージに格納されているBLOBなので、URLを持っています。対照的に、AzureドライブのコンテンツはURLを使用して直接アクセスできません。 Azureドライブに含まれているファイルを公開するには、Windows Azureインスタンスからアクセスできるようにする必要があります。

ドライブをマウントするときにAzureドライブをIISの仮想フォルダとしてマップすることで、これを行うことができます。 .NETでコーディングする場合は、System.Web.Administrationを見てください(プロジェクトに含める必要があります。これはIISの一部であり、CLRには直接含まれません)。別の言語でコーディングする場合、最も簡単な方法は、appcmd.exeを呼び出して仮想フォルダを定義することです。

ピエール

+0

アクセス可能です。私のTest.VHDは私のブロブです。私はそれを "A:\"としてマウントしました。 A:そこにはいくつかのpdfがありますので、どうやってこのpdfにアクセスするのですか? – Dhananjay

関連する問題