gpt4 book ai didi

html - Azure Blob SAS 和 Cache-Control 确保资源得到缓存

转载 作者:行者123 更新时间:2023-11-28 02:36:38 25 4
gpt4 key购买 nike

我们正在提供存储在 Azure Blob 容器上的私有(private)资源(图像、文件等)。

安全性是使用 Shared Access Signatures 实现的,为每个资源请求创建,例如,两个请求意味着两个不同的访问 token 。

一般来说,安全 URL 由文件名和作为查询字符串传递的 token 组成,例如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

资源的响应包含 Cache-Control header (Cache-Control:max-age=31536000?

图像和视频类型的资源使用常规 HTML 或元素出现在网站中。

以这种方式提供的资源可以由浏览器缓存吗?

谢谢大家!

最佳答案

可以将缓存 header 添加到共享访问签名中。

这指示 Azure Blob 返回相应的缓存 header 作为 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 header 也可以执行相同的操作。

关于html - Azure Blob SAS 和 Cache-Control 确保资源得到缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46898761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com