2017-06-17 9 views
0

WebアプリケーションをAzureに移動する作業をしています。画像アップロードを処理する方法がわかります。現在、私はImageResizerでアップロードを処理し、ディレクトリに保存するよ:画像をアップロードしたASP.NET WebフォームアプリケーションをAzureに変換する

Protected Function DoHeaderUpload() As Guid? 
    If HeaderUploadControl.HasFile Then 
     If HeaderUploadControl.PostedFile.ContentType.StartsWith("image/") Then 
      If HeaderUploadControl.PostedFile.ContentLength < 3145728 Then ' 3MB max size 
       Dim myFileGuid = System.Guid.NewGuid() 
       Dim i As ImageResizer.ImageJob = New ImageResizer.ImageJob(HeaderUploadControl.PostedFile, 
                      "~/Images/Headers/" & myFileGuid.ToString() & ".jpg", 
                      New ImageResizer.Instructions("height=100;format=jpg;mode=crop")) 
       i.Build() 
       Return myFileGuid 
      Else 
       HeaderUploadError.Text = "<br>File exceeds 3MB maximum size" 
       HeaderUploadError.IsValid = False 
      End If 
     Else 
      HeaderUploadError.Text = "<br>Only image uploads are supported" 
      HeaderUploadError.IsValid = False 
     End If 
    End If 
End Function 

私はImageResizer(link)からメモリストリーム出力からブロブを移入するコードの抜粋を発見しました。

しかし、これらの画像を自分のサイトに埋め込む/参照する方法は少し不明です。現在、私は(例えば)にこれをやっている:

HeaderImage.Src = String.Format("/Images/Headers/{0}.jpg", .HeaderImage.ToString()) 

私はちょうどブロブへの完全なURL接頭辞を含めることができると思いますが、それは悪い考えのように思える(およびテストのためにローカルで実行しているときに、物事を破ります)。

Azure Blobの代わりにAzure Files共有を指す仮想パスを使用できますか?

ImageResizer用のAzureReader2が魅力的でしたが、非常に高価です。特定の接頭辞を持つ参照をAzure BLOBの場所に自動リダイレクトするように見えるので、これはかなり簡単な解決策でもあるようです。

質問:私はこれを行う最も簡単な方法は何ですか?私はいろいろなオプションでサークルに入っています。

ありがとうございます!

答えて

0

私は、ブロブストレージに到達するために適切なURLの前にプレフィックスを付けるソリューションを使用しました。それは、ローカルとリモートで動作させるために、私は変換を追加しました:

<appSettings> 
    <add key="BlobURLPrefix" value="http://myapp.blob.core.windows.net" 
     xdt:Locator="Match(key)" 
     xdt:Transform="SetAttributes(value)"/> 
</appSettings> 

私は画像の場所を参照する必要があるときに、私はこのような何か行うことができます。

FullUrl = ConfigurationManager.AppSettings("BlobURLPrefix") + ImagePath 

ない完全にエレガントに、それ合理的に私の目的に合っており、実装が非常に簡単です。

関連する問題