2017-05-16 4 views
1

전에 업로드 된 모든 BLOB의 캐시 제어 속성을 설정하려고하지만 "원격 서버에서 오류 (404)를 찾을 수 없습니다."예외가 발생합니다.BLOB 속성을 설정하면 오류가 반환됩니다.

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
       CloudConfigurationManager.GetSetting("StorageConnectionString")); 

     // Create the blob client. 
     CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 

     List<CloudBlobContainer> containers = blobClient.ListContainers().ToList(); 

     // Retrieve reference to a previously created container. 
     CloudBlobContainer container = blobClient.GetContainerReference(containerName); 



     List<IListBlobItem> blobs = container.ListBlobs().ToList(); 

     int count = 0; 
     foreach (IListBlobItem blob in blobs) 
     { 
      CloudBlockBlob b = container.GetBlockBlobReference(blob.Uri.ToString()); 
      b.Properties.CacheControl = "public, max-age=1296000"; 
      b.SetProperties(); 

      Console.WriteLine("cached"+count.ToString()); 
      count++; 
     } 

SetProperties에서 오류가 발생합니다.

답변

0

blob뿐만 아니라 가상 디렉터리도 반환 할 수있는 계층 적 목록을 만들고 있습니다. 예를 들어 "foo/bar"라는 이름의 blob이 있으면 목록에 "foo /"라는 CloudBlobDirectory가 반환됩니다. 이것을 blob 이름으로 사용하려고하면 blob이 없기 때문에 서비스가 다시 실행됩니다 (404).

원하는대로하려면 "useFlatBlobListing : true"를 ListBlobs에 전달한 다음 반환 된 IListBlobItem을 각각 CloudBlob로 캐스팅합니다.

+0

감사합니다. – Nada

관련 문제