Azure Blob SAS and Cache-Control to ensure that resources are cached(Azure Blob SAS和缓存控制,以确保缓存资源)
问题描述
我们提供的是私有资源(图像、文件.)存储在Azure Blob容器中。 安全性使用Shared Access Signatures实现,为每个对资源的请求创建,例如,两个请求意味着两个不同的访问令牌。
通常安全URL由文件名组成,令牌作为查询字符串传递,例如https://myaccount.blob.core.windows.net/file.img?sv=2015-04-05&ss=bf&srt=s&st=2015-04-29T22%3A18%3A26Z&se=2015-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=168.1.5.60-168.1.5.70&spr=https&sig=F%6GRVAZ5Cdj2Pw4tgU7IlSTkWgn7bUkkAg8P6HESXwmf%4B
资源的响应包含缓存控制头(缓存控制:MAX-AGE=31536000?
使用常规HTML或元素在网站中显示图像和视频类型的资源。
以这种方式提供的资源是否可以由浏览器缓存?
谢谢大家!
推荐答案
可以将缓存头添加到共享访问签名。
这将指示Azure Blob将相应的缓存头作为HTTP响应的一部分返回。
这就是如何用c#:
var policy = new SharedAccessBlobPolicy();
var headers = new SharedAccessBlobHeaders() { CacheControl = "max-age=" + MaxCacheAgeInDays * 24 * 60 * 60 };
var blockBlob = _container.GetBlockBlobReference(name);
var result = _baseUrl + blobName + blockBlob.GetSharedAccessSignature(policy, headers);
希望这能帮助其他人。
ps:可以对其他HTTP标头执行相同的操作。
这篇关于Azure Blob SAS和缓存控制,以确保缓存资源的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Azure Blob SAS和缓存控制,以确保缓存资源
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- addEventListener 在 IE 11 中不起作用 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07