2017-06-10 123 views
0

我有图像处理器的应用程序,用于处理图像和从天蓝色Blob存储得到它。在这一刻,我的BLOB存储服务正在返回绝对URL到BLOB的图像返回重定向到这个URL。例如:dotent芯Blob存储缓存

[Route("/blob-storage/{imageName}")] 
[HttpGet] 
public async Task<IActionResult> GetImage(string imageName, ImageSize size) 
{ 
    var imageUrl = await this.ImageProcessorFacade.GetImageUrl(imageName, size); 

    return Redirect(imageUrl); 
} 

现在我想要缓存这个返回的图像。是的,存在ResponseCache属性,但它不是我与重定向工作,我认为这是解决这个问题的不好方法。对于得到的图像,我呼吁这个例子:http://localhost/blob-storage/test.jpeg?size... 和应对重定向到blob.windows.net/...

有没有办法,如何缓存呢? 谢谢你的时间!

+0

你想要被缓存的是什么?图像本身或“处理器”产生的URL? –

+0

处理器正在返回重定向到图像,所以最终返回的图像。 –

回答

0

我想这个缓存返回的图像。是的,存在ResponseCache属性,但它不会与重定向一起工作,而我认为这是解决此问题的不好方法。对于得到的图像,我呼吁例如这样的:http://localhost/blob-storage/test.jpeg?size ...而且响应重定向到blob.windows.net/...等

您呼叫重定向()方法,在你的控制器动作重定向到一个指定的URL,HTTP 位置头字段将作为响应返回。然后,用3xx代码响应邀请的用户代理(例如Web浏览器)将向位置字段中指定的新URL发出第二个请求,这发生在Web浏览器端,您不能追加或修改缓存 - 相关的头文件来响应。

enter image description here

如果你想降低时延,更快的交货存储在Azure的Blob存储的图像,你可以尝试使用the CDN