Azure blob存储错误:不支持多个条件标头

Rog*_*ink 5 azure azure-storage azure-storage-blobs

对于一个项目,我使用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发送的请求:

由chrome发送的请求

Blob存储服务返回的XML响应:

来自blob存储服务的XML响应

Iht*_*has 2

是的,这是因为缓存,至少对我来说是因为缓存。我使用的是 SAS,所以我的解决方案是添加一个额外的参数以避免缓存。

/// token = SharedAccessSignature
    string tick = $"&{ DateTimeOffset.UtcNow.Ticks}";
    Uri url = new Uri(file.StorageUri.PrimaryUri.ToString() + token + tick);
Run Code Online (Sandbox Code Playgroud)

Web 应用程序应忽略额外的参数。