【问题标题】:AzureReader2 not working with querystringAzureReader2 不使用查询字符串
【发布时间】:2015-02-18 18:09:48
【问题描述】:

我在 Azure 的私有块中拥有图像。

我正在使用 Azure Reader 2,可以像 http://localhost:55328/azure/00001/IMG_0001.JPG 一样访问图像 - 它工作正常并重定向到带有共享访问签名的 blob。

但是,如果我尝试调整图像大小,例如IMG_0001.JPG?width=100&height=100,我只是得到一个 404。

单步执行代码,我注意到这一行

if (e.VirtualPath.StartsWith(prefix, StringComparison.OrdinalIgnoreCase) && e.QueryString.Count == 0)
        {
         ....
        }

因此,如果有 QueryString,则不会进行任何处理。

在这里调试输出: https://gist.github.com/anonymous/28fd112eec194181baae

提前致谢

【问题讨论】:

    标签: imageresizer


    【解决方案1】:

    您的调试误导了您。确实,重定向仅在没有查询字符串时发生。当有个参数时,需要修改blob,这意味着我们必须代理它。在这种情况下,302 重定向是不可能的。

    AzureReader 注册了一个 IVirtualImageProvider,ImageResizer 在处理所有代理、处理和缓存时会自动使用它。

    默认行为是下载、修改和重新提供数据。 302 重定向只是对未修改文件吞吐量的优化。

    注意事项:

    sharedAccessExpiryTime 被忽略,没有该名称的设置。

    如果要参考代码,最好link to the line in the file on github,否则我们不容易找到上下文。在任何 github 页面上按 y 以获取永久链接,然后单击行号(或范围)。

    【讨论】:

    • 感谢您的回答 Nathanael。那么,尝试使用 AzureReader 调整大小时我做错了吗?我应该将localhost:55328/azure/00001/IMG_0001.JPG 传递给另一个插件以调整大小吗?
    • 不,IMG_0001.JPG?width=100&height=100 应该可以工作。很可能是某些东西阻止了 VirtualPathProviders 的工作。或者,也许 StaticFileModule 甚至没有安装?
    • 这是 VS2013 中一个非常开箱即用的项目,所以我很难看出我做错了什么。我以前不必手动配置 StaticFileModule(我是管理员,我也没有使用过 AzureReader2)。这是我应该设置的吗?
    • 这是人们在设置 IIS 时经常忘记安装的东西。如果它是开箱即用的,也许您可​​以将其压缩并上传到某个地方,以便我可以尝试解决问题?
    • 是剑道 UI 破坏了它。该死!我不确定使用 Telerik 是节省了我还是浪费了我的时间!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多