2013-02-15 2 views
2

BLOB 저장소에있는 파일의 세부 정보를 검색하려고합니다. 아이디어는 클라이언트가 그들과 관련된 포탈에 배치 할 문서를 요구한다는 것입니다. BLOB 파일 이름 검색

가 이동하고 현재 파일이 형식의 그리드에 나열되어 있습니다

파일 이름, 파일 크기, 파일 형식, 링크를 다운로드합니다.

문제가있는 비트는 BLOB 속성을 가져 오는 것입니다.

다음은 현재 가지고있는 코드입니다.

public void BindGridDocuments() 
{ 
    var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnection"].ConnectionString); 
    var blobStorage = storageAccount.CreateCloudBlobClient(); 
    CloudBlobContainer container = blobStorage.GetContainerReference("documents"); 
    var documentCollection = container.ListBlobs(); 
    foreach (var document in documentCollection) 
    { 
     string filename = document.Uri.ToString(); 

    } 
} 
+0

document.Uri은 파일 이름을 포함해야합니다. 그것을 벗겨 내야 할 것입니다. – tomasmcguinness

+0

정확히 무엇을 검색해야합니까? –

+0

uri에서 파일 이름을 가져올 수 있다고 생각했습니다. 가능하다면 파일 크기도 좋을 것입니다. –

답변

10

이 코드를 사용해보십시오. 코드는 BLOB 컨테이너의 모든 BLOB가 BLOB 타입을 가진 것으로 가정합니다.

저장 클라이언트 라이브러리 2.0 :

 CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount; 
     CloudBlobContainer blobContainer = storageAccount.CreateCloudBlobClient().GetContainerReference("images"); 
     var blobs = blobContainer.ListBlobs(null, true, BlobListingDetails.All).Cast<CloudBlockBlob>(); 
     foreach (var blockBlob in blobs) 
     { 
      Console.WriteLine("Name: " + blockBlob.Name); 
      Console.WriteLine("Size: " + blockBlob.Properties.Length); 
      Console.WriteLine("Content type: " + blockBlob.Properties.ContentType); 
      Console.WriteLine("Download location: " + blockBlob.Uri); 
      Console.WriteLine("======================================="); 
     } 

저장 클라이언트 라이브러리 1.7 :

 CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount; 
     CloudBlobContainer blobContainer = storageAccount.CreateCloudBlobClient().GetContainerReference("images"); 
     var blobs = blobContainer.ListBlobs(new BlobRequestOptions() 
      { 
       BlobListingDetails = BlobListingDetails.All, 
       UseFlatBlobListing = true, 
      }).Cast<CloudBlockBlob>(); 
     foreach (var blockBlob in blobs) 
     { 
      Console.WriteLine("Name: " + blockBlob.Name); 
      Console.WriteLine("Size: " + blockBlob.Properties.Length); 
      Console.WriteLine("Content type: " + blockBlob.Properties.ContentType); 
      Console.WriteLine("Download location: " + blockBlob.Uri); 
      Console.WriteLine("======================================="); 
     } 
+0

고맙습니다. 그 일을 한 것처럼 보입니다. –

+0

다운로드 위치가 다음과 같은 오류 메시지를 반환한다는 약간의 문제가 있습니다. –

+0

현재 받고있는 오류 메시지는 무엇입니까? –