Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Azure blockBlob上设置CacheControl,如何在部署新文件时使其失效?_C#_Http_Azure_Azure Storage_Azure Storage Blobs - Fatal编程技术网

C# 在Azure blockBlob上设置CacheControl,如何在部署新文件时使其失效?

C# 在Azure blockBlob上设置CacheControl,如何在部署新文件时使其失效?,c#,http,azure,azure-storage,azure-storage-blobs,C#,Http,Azure,Azure Storage,Azure Storage Blobs,我想通过以下方式缓存azure上的一些静态Blob: CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference("staticJsonFile"); CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobref); /

我想通过以下方式缓存azure上的一些静态Blob:

CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("staticJsonFile");
CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobref);

// Cache setup
int expirationSeconds = new DateTime(2050, 1, 1).Subtract(DateTime.Now).Seconds;
string cacheControl = string.Format("public, max-age={0}, s-maxage={0}", expirationSeconds);
blockBlob.Properties.CacheControl = cacheControl;
blockBlob.SetProperties();
它们被“永远”缓存


当具有相同名称(相同文件但新内容)的新文件上载到Azure filestorage时,我是否可以说blockBlob的缓存无效?

因为您也在设置客户端缓存控制头(
public,max age=
),即使您使服务器blob缓存无效,客户端不会检查新文件。他们将只使用缓存的版本

您应该考虑向文件中添加版本号,并相应地更新源引用

另一种方法是强制客户机发出一个
(如果自
请求(需要您将
必须重新验证
添加到缓存控制头中)修改后的
,这样您就可以更好地控制客户机何时获取新文件。但您不能在当前情况下使用它,因为您无法对所有已缓存文件的浏览器/应用程序执行任何操作


强制缓存重新验证还会导致额外的往返(未修改时会导致http-302),如果网络延迟很高,则可能会出现性能问题。

好的,总结一下您的答案,我不使用此功能,因为我们的文件名始终相同,我们无法更改,因为它们是提供给我们的。。。在调用azure blob客户端之前,我们现在使用MemoryCache进行缓存,这样可以在azure客户端上保存我们不需要的请求,甚至更好!