我们正在提供存储在Azure Blob容器中的私有资源(图像,文件......)。
使用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实现安全性,为每个资源请求创建安全性,例如,两个请求意味着两个不同的访问令牌。
通常,安全URL由文件名组成,并且令牌作为查询字符串传递,例如, {{3}}
资源的响应包含Cache-Control标头(Cache-Control:max-age = 31536000?
图片和视频类型的资源使用常规HTML或元素存在于网站中。
可以通过这种方式提供资源是否可以通过浏览器缓存?
谢谢大家!
答案 0 :(得分:0)
可以将缓存头添加到共享访问签名。
这指示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标头也可以这样做。