2017-10-02 2 views
-1

Azure에 저장하고 싶지만 내 Windows 클라이언트 응용 프로그램에서 사용하려는 설정 파일 (xml 또는 json)이 약 6 개 있습니다. blob 저장소에 저장하고 다음 코드를 사용하여 다운로드 할 계획입니다.푸른 색 얼룩 저장 파일을 캐시하는 방법

설정 파일은 자주 변경되지 않습니다. 파일을 로컬에서 캐시하여 매번 다운로드하지 못하도록 할 수 있습니까?

더 좋은 방법이 있나요? 내가 사용해야 할 다른 Azure 서비스?

+0

내가 완전히 귀하의 질문을 이해하지만 잘 모르겠지만 ... 어떻게 얼룩이 변경되었습니다 알아낼거야? 또한 : 귀하의 설정 파일이 공개 블롭 또는 비공개에 저장 될 예정입니까? "다른 Azure 서비스"까지 - 당신이 찾고있는 것을 명확히 밝히지 않습니다. –

답변

2

설정 파일은 자주 변경되지 않습니다. 파일을 로컬에서 캐시하여 매번 다운로드하지 못하도록 할 수 있습니까?

나의 이해 당

, 당신은 식별자로 사용할 수 있습니다 귀하의 BLOB 파일의 의 ETag 속성을 사용할 수 있습니다 및 업데이트 작업이 사용자의 BLOB 파일에서 수행 될 때마다 업데이트 될 것이다.

Windows 클라이언트 응용 프로그램 내에서 설정 파일을로드하기 전에 로컬 측에서 ETag를 확인하고 서버 측의 관련 값과 비교할 수 있습니다. ETag가 일치하지 않으면 갱신을 위해 로컬 쪽을 선택하고 최신 설정 파일을로드하십시오. 당신은 Windows 클라이언트 응용 프로그램을 사용하고 있기 때문에

, 당신은 공공는 모양에 대한 액세스 만을 읽을 수있는 용기 공용 액세스 수준을 설정하거나 컨테이너에 대한 권한이 제한, 당신은 Azure Storage Client Library for .NET를 사용할 수있는 SAS 토큰을 생성하고 코드를 수행 할 수

//access container with public access level to blobs 
//var container = new CloudBlobContainer(new Uri("https://{storage-name}.blob.core.windows.net/{container-name}")); 

//access container with SAS token 
var container = new CloudBlobContainer(new Uri("https://{storage-name}.blob.core.windows.net/{container-name}?{SAS-token}")); 

CloudBlob blockBlob = container.GetBlobReference("setting.json"); 
blockBlob.FetchAttributes(); 
string etag=blockBlob.Properties.ETag; 

, 설정 파일을 다운로드 WebClient를 사용하여, 파일 내에서 Etag입니다 값을 설정할 수 있습니다 다음과 같이 아래 BLOB 서비스에서 ETag 속성을 검색합니다 로컬 설정 파일의 이름 (예 : {filename}-{etag}.json).

또한 Azure Storage Explorer을 사용하여 저장소 리소스를 관리 할 수 ​​있습니다. 또한 ContentMD5 속성을 활용할 수도 있지만 약간의 제한이 있습니다. 자세한 내용은 here을 참조하십시오.

관련 문제