【发布时间】:2013-10-21 22:27:51
【问题描述】:
对于一个项目,我使用 Azure blob 存储来存储上传的图像文件。我还在网站上显示上传的图像 - 但是,这就是问题所在。对 blobstorage 中图像的所有其他请求都会产生一个400 - Multiple condition headers not supported。
阅读此错误后,我最终会看到以下有关指定条件请求标头的文档:http://msdn.microsoft.com/en-us/library/windowsazure/dd179371.aspx
该页面说明了有关指定多个条件标头的以下内容:
如果请求同时指定 If-None-Match 和 If-Modified-Since 标头,则根据 If-None-Match 中指定的条件评估请求。
如果请求同时指定 If-Match 和 If-Unmodified-Since 标头,则根据 If-Match 中指定的条件评估请求。
除了上面列出的两种条件标头组合外,请求只能指定一个条件标头。指定多个条件标头会导致状态代码 400(错误请求)。
我相信 chrome 发送的请求满足本文档中列出的所有要求,但我收到了该错误。
有没有人使用过 Azure blob 存储可以帮助解决这个问题?我将不胜感激!
Chrome 发送的请求:
blob 存储服务返回的 XML 响应:
【问题讨论】:
-
在您和 Azure 之间是否有一个代理/缓存服务器正在添加它自己的条件标头?当您从不同的网络(即从 Azure 虚拟机)执行相同的测试时会发生什么?
-
另外,你能告诉我们存储在 blob 存储中的文件有多大吗?
-
文件最大。 2mb大小,真的只是正常的图片上传。代理/缓存服务器是一个有趣的建议。我从 Azure VM 对其进行了测试,但无法重现错误,因此我假设我所在的共享办公空间必须添加自己的缓存标头。这本身就增加了一点问题,但是,我们正在开发的网站应该由大中型公司的员工使用——这类公司也可能为他们的办公室 WiFi 使用代理/缓存服务器。我们可以做些什么来解决这个问题吗? (缺少通过我们的 webrole 路由请求)
-
你试过使用 https 吗?
标签: azure azure-storage azure-blob-storage