如何缓存azure blob存储文件

如何缓存azure blob存储文件,azure,caching,webclient,azure-storage-blobs,Azure,Caching,Webclient,Azure Storage Blobs,我有大约6个设置文件(xml或json),我想存储在Azure中,但在我的Windows客户端应用程序中使用。我计划将它们存储在blob存储中,并使用以下代码下载它们: var myWebClient = new WebClient(); myWebClient.DownloadFile(Address, file.FullName); 设置文件不会经常更改。如何在本地缓存文件,使它们不会每次下载 有更好的方法吗?我应该使用的其他Azure服务 设置文件不会经常更改。如何在本地缓存文件,使它们

我有大约6个设置文件(xml或json),我想存储在Azure中,但在我的Windows客户端应用程序中使用。我计划将它们存储在blob存储中,并使用以下代码下载它们:

var myWebClient = new WebClient();
myWebClient.DownloadFile(Address, file.FullName);
设置文件不会经常更改。如何在本地缓存文件,使它们不会每次下载

有更好的方法吗?我应该使用的其他Azure服务

设置文件不会经常更改。如何在本地缓存文件,使它们不会每次下载

根据我的理解,您可以使用blob文件的ETag属性,该属性可以用作标识符,并且在每次对blob文件执行更新操作时都会对其进行更新

在Windows客户端应用程序中加载设置文件之前,可以从本地检查ETag并与服务器端的相关值进行比较。如果ETag不匹配,可以将设置下载到本地进行续订,然后加载较新的设置文件

由于您使用的是Windows客户端应用程序,您可以将容器公共访问级别设置为“仅对Blob的公共读取访问”,或者针对您的容器生成具有有限权限的SAS令牌,然后,您可以使用并按照下面的代码从blob服务中检索
ETag
属性,如下所示:

//对blob具有公共访问级别的访问容器
//var container=newcloudblobcontainer(新Uri(“https://{storage name}.blob.core.windows.net/{container name}”);
//使用SAS令牌访问容器
var container=newcloudblobcontainer(新Uri(“https://{storage name}.blob.core.windows.net/{container name}?{SAS token}”);
CloudBlob blockBlob=container.GetBlobReference(“setting.json”);
blockBlob.FetchAttributes();
字符串etag=blockBlob.Properties.etag;
使用
WebClient
下载设置文件时,可以在本地设置文件的文件名内设置Etag值(例如
{filename}-{Etag}.json


此外,您还可以利用它来管理存储资源。此外,您还可以利用
ContentMD5
属性,但它有一些限制,您可以参考更多详细信息。

不确定我是否完全理解您的问题,但。。。你怎么知道一个斑点变了?另外:您的配置文件是存储在公共blob还是私有blob中?至于“其他Azure服务”-不清楚您到底在寻找什么。