我将图像上传到项目中的azure blob存储区。出于逻辑原因,我正在为每次上传创建一个新容器,以对内容进行分组。这个公园工作正常。现在我正在尝试设置ImageResizer以启用调整大小:)和其他东西。在所有示例中,它们指向一个容器作为端点,但在我的情况下,我有多个动态容器,因此这不是一个选项。我的问题是,如果有人知道它是否应该适用于我的情况,或者我是否需要重新考虑我存储图像的方式。
答案 0 :(得分:3)
根据您的要求,您可以尝试利用AzureReader2来处理Azure blob,以便从Azure Blob动态调整图像大小。由于您有多个动态容器,您可以按照以下步骤配置AzureReader2
:
通过NuGet安装包
ImageResizer.WebConfig
ImageResizer.Plugins.AzureReader2
<强>的Web.config 强>
<configSections>
<section name="resizer" type="ImageResizer.ResizerSection" requirePermission="false" />
</configSections>
<resizer>
<plugins>
<add name="MvcRoutingShim" />
<add name="AzureReader2"
connectionString="{your-storage-connectionstring}"
prefix="~/cloud/" />
</plugins>
</resizer>
<system.web>
<httpModules>
<add name="ImageResizingModule" type="ImageResizer.InterceptModule" />
</httpModules>
</system.web>
<system.webServer>
<modules>
<add name="ImageResizingModule" type="ImageResizer.InterceptModule" />
</modules>
</system.webServer>
<强>结果强>
这是我的测试,你可以参考它。
1.将图像上传到我的Azure Blob
https://brucechen.blob.core.windows.net/images01/test.jpg
https://brucechen.blob.core.windows.net/images01/landscape/test.jpg
https://brucechen.blob.core.windows.net/images02/test.jpg
2.浏览器在我的网站上的图像如下:
http://bruce-chen.azurewebsites.net/cloud/images01/test.jpg?width=400
http://bruce-chen.azurewebsites.net/cloud/images01/landscape/test.jpg?width=400
http://bruce-chen.azurewebsites.net/cloud/images02/test.jpg?width=400
注意:您的图片链接应如下所示:
http(s)://<host-name>:<port>/<prefix-you-configured>/<blob-container-name>/<blob-file-name>?width=200&height=200
此外,要通过ImageResizer预先调整图片大小,您可以按照thread中的答案进行操作。此外,还有一个类似于Simple.ImageResizer的类似库,它是免费的,您可以参考它。