【问题标题】:Hide Azure Blob Url隐藏 Azure Blob 网址
【发布时间】:2017-05-15 19:45:41
【问题描述】:

我有大量文件存储在公共 Azure blob 容器中,所有这些文件都通过我的 ASP.NET MVC Web 应用程序中的 HTML 直接引用。例如,blob 存储中其中一个图像的路径如下所示:

//<my-storage-account-name>.blob.core.windows.net/public/logo.png

我想避免在我的 HTML 源代码中显示我的存储帐户名称,而不是:

<img src="//<my-storage-account-name>.blob.core.windows.net/public/logo.png"/> 

我更喜欢用这个:

<img src="/images/logo.png"/> 

我想避免设置 MVC 路由并使用 blob API 将文件加载到响应流中,因此认为 web.config 解决方案可能是最简单的解决方案,即

<rule name="Image Redirect" stopProcessing="true">
    <match url="^images/(.*)$" ignoreCase="false" />
    <action type="Redirect" url="//<my-storage-account-name>.blob.core.windows.net/public/{R:1}" redirectType="Permanent" />
</rule>

问题:鉴于任何页面一次可以加载 30 多张图片,这是最有效的方法吗?还是应该只使用公共 blob URL,尽管我担心性能提升?

【问题讨论】:

    标签: blob


    【解决方案1】:

    我找到了一个 Microsoft 动手实验室,他们在其中推荐了 web.config URL 重写规则选项:

    Hands on Lab: Maintainable Azure Websites: Managing Change and Scale(2014 年 7 月 16 日)

    (代码片段 - WebSitesInProduction - Ex4 - UrlRewriteRule)

    <system.webServer>
        <rewrite>
            <rules>
                <rule name="redirect-images" stopProcessing="true">
                    <match url="img/(.*)"/>
                    <action type="Redirect" url="http://[YOUR-STORAGE-ACCOUNT].blob.core.windows.net/images/{R:1}"></action>
                </rule>
            </rules>
        </rewrite>
    

    "注意:URL重写是拦截传入的Web请求并将请求重定向到不同资源的过程。URL重写规则告诉重写引擎什么时候需要重定向请求,应该重定向到哪里重定向。重写规则由两个字符串组成:在请求的 URL 中查找的模式(通常使用正则表达式),以及替换模式的字符串(如果找到)。有关详细信息,请参阅 ASP 中的 URL 重写。 NET。”

    【讨论】:

    • 正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 2017-03-02
    • 2012-06-27
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多