AzureReader2插件使用的ImageResizer无法调整大小

3

编辑

我已经解决了问题,但是我不得不添加RemoteReader插件。当我从项目中移除AzureReader2插件时,它仍然可以正常工作,这是有道理的,但是AzureReader2插件对我有什么好处呢?

原始问题

我已经完成了此处(包括评论)列出的所有步骤,但似乎无法弄清楚为什么我不能使用这个imageresizer插件来动态调整图像大小。

我的web.config元素下的条目如下:

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

我已将容器设置为“img”。

当我访问此URL进行测试: https://<account>.blob.core.windows.net/img/image.jpg?width=50 图像显示出来,但仍然是原始大小。 我还尝试在本地和AWS上运行此内容,但仍无法改变大小 :(

2个回答

5

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

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

编辑

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

希望这能帮到您。


当我访问 https://<account>.blob.core.windows.net/img/image.jpg?width=50 时,它没有给我调整大小后的图片。我必须使用 http://<account>.azurewebsites.net/remote/<account>.blob.core.windows.net/img/image.jpg?width=50 才能使其正常工作 :( - Ryan
那么,我的问题是,我应该使用哪个URL来使用AzureReader2插件而不是RemoteReader插件呢? - Ryan
我以前没有使用过AzureReader2,并且配置参数中没有提供任何示例。您是否使用了该插件的“prefix”参数? - Tom

3

经过数小时的摸索,我终于理解了它的工作原理。我没有意识到前缀是添加在实际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存储!


这有点说得通,因为请求必须通过http模块路由才能发生“魔法”。如果你引用了blob存储,模块怎么拦截请求呢? - Phil Cooper
@Ryan 对不起,你做了什么不同的事情? - mko
@John - 我刚才使用了第一个URL而不是第二个。 - Ryan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接