使用AzureReader2插件的Azure ImageResizer没有调整大小

时间:2013-02-03 17:26:22

标签: c# asp.net-mvc azure asp.net-mvc-4 imageresizer

修改

我让它工作,但我不得不添加RemoteReader插件。当我从我的项目中删除AzureReader2插件时,它仍然有效,但是AzureReader2插件有什么好处呢?

原始问题

我已完成了大纲here(包括评论)的所有内容,但似乎无法弄清楚为什么我无法使用此imageresizer插件动态调整图像大小。

这是我在元素下的web.config条目:

<add name="AzureReader2" prefix="~/img/" connectionString="DefaultEndpointsProtocol=https;AccountName=[Account];AccountKey=[key]" endpoint="http://<account>.blob.core.windows.net/" />

我已将我的容器设置为'img'。

当我转到此网址进行测试时: https://<account>.blob.core.windows.net/img/image.jpg?width=50图片显示但只是常规尺寸。我也尝试在本地和现场AWS上运行它,但仍然没有调整大小:(

2 个答案:

答案 0 :(得分:4)

ImageResizer库允许提供图像的修改版本(调整大小,裁剪,旋转,带水印等)。 AzureReader2是一个插件,允许从Azure Blob(https://<account>.blob.core.windows.net)而不是磁盘中获取未修改的图像。

因此,应该用于获取图像修改版本的URL是安装了ImageResizer库的应用程序URL,而不是Azure Blob URL(在您的示例中为https://<account>.blob.core.windows.net/img/image.jpg?width=50)。

修改

AzureReader2插件允许您从Azure Blob中读取图像,就像它们保存在磁盘中一样。如果应用程序的构建方式是所有映像都来自Azure Blob,那么您可以拥有两个独立团队:一个管理您的映像(以及其他媒体,如CSS)和一个管理您的代码。使用这种方法,AzureReader2插件将非常方便。

我希望这会有所帮助。

答案 1 :(得分:2)

经过几个小时的游戏,我终于明白它是如何运作的。我没有意识到前缀是你在实际URL的末尾而不是BLOB存储URL。我最终得到了

http://<account>.azurewebsites.net/img/img/image.jpg?width=50

这不符合我原来的想法:

https://<account>.blob.core.windows.net/img/image.jpg?width=50

对于任何正在查看此内容的人来说,前缀是在实际网站的URL而不是BLOB商店中添加的!