将带有图像上载的ASP.NET Web表单应用程序转换为Azure
因此,我正在努力将一个web应用程序移动到Azure,唯一让我感到困惑的是如何处理图像上传。目前,我正在使用ImageResizer处理上传并将其保存到一个目录:将带有图像上载的ASP.NET Web表单应用程序转换为Azure,asp.net,azure,imageresizer,Asp.net,Azure,Imageresizer,因此,我正在努力将一个web应用程序移动到Azure,唯一让我感到困惑的是如何处理图像上传。目前,我正在使用ImageResizer处理上传并将其保存到一个目录: Protected Function DoHeaderUpload() As Guid? If HeaderUploadControl.HasFile Then If HeaderUploadControl.PostedFile.ContentType.StartsWith("image/") Then
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
我想我可以只在blob中包含完整的URL前缀,但这似乎不是一个好主意(在本地运行测试时会破坏它)
我是否可以使用指向Azure文件共享而不是Azure Blob的虚拟路径
我看到AzureReader2用于ImageResizer,这很诱人,但它似乎非常昂贵。这似乎也是一个非常简单的解决方案,因为它看起来会自动将带有特定前缀的引用重定向到Azure Blob位置
我想问题是:最简单的方法是什么?我一直在考虑各种各样的选择
谢谢 我最终使用了一种解决方案,在该解决方案中,我将适当的URL作为前缀,以访问blob存储。为了使其在本地和远程工作,我添加了一个转换:
<appSettings>
<add key="BlobURLPrefix" value="http://myapp.blob.core.windows.net"
xdt:Locator="Match(key)"
xdt:Transform="SetAttributes(value)"/>
</appSettings>
不完全优雅,但它相当适合我的目的,并且很容易实现
<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