Azure 存储中跨多个容器的 Imageresizer
Imageresizer across multiple containers in azure storage
我正在将图像上传到项目中的 Azure Blob 存储。出于逻辑原因,我为每次上传创建一个新容器,以对内容进行分组。这个公园运作良好。现在我正在尝试设置 ImageResizer 以启用调整大小 :) 和其他一些东西。在所有示例中,它们都指向一个容器作为端点,但在我的例子中,我有多个动态容器,所以这不是一个选项。我的问题是是否有人知道它是否适用于我的情况,或者我是否需要重新考虑我存储图像的方式。
根据您的要求,您可以尝试利用 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.Upload 图像到我的 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.Browser图片在我的网站如下:
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. Also, there is anther similar library called Simple.ImageResizer中的答案,这个是免费的,你可以参考。
我正在将图像上传到项目中的 Azure Blob 存储。出于逻辑原因,我为每次上传创建一个新容器,以对内容进行分组。这个公园运作良好。现在我正在尝试设置 ImageResizer 以启用调整大小 :) 和其他一些东西。在所有示例中,它们都指向一个容器作为端点,但在我的例子中,我有多个动态容器,所以这不是一个选项。我的问题是是否有人知道它是否适用于我的情况,或者我是否需要重新考虑我存储图像的方式。
根据您的要求,您可以尝试利用 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.Upload 图像到我的 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.Browser图片在我的网站如下:
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. Also, there is anther similar library called Simple.ImageResizer中的答案,这个是免费的,你可以参考。