2017-04-19 183 views
0

我似乎無法找到訪問Azure存儲中blob的單個blob元數據的方法。從Azure存儲blob訪問元數據

FetchAttributes只適用於整個容器。我的方法返回一個與我設置的參數匹配的blob列表。然後我需要遍歷該列表並從每個blob中檢索一些元數據,但我沒有找到任何方法來這樣做。

它似乎有很多開銷,但我應該在創建容器對象時獲取這些屬性,然後篩選blob列表?

所以,我想我會嘗試的,

public static IEnumerable<GalleryPhoto> GetGalleryPhotos(string folderPath) 
{ 

     var container = CreateAzureContainer(containerName, false); 
     container.FetchAttributes(); 
     var blobDirectory = container.GetDirectoryReference(folderPath); 
     var photoGalleries = new List<GalleryPhoto>(); 
     var blobs = blobDirectory.ListBlobs().ToList(); 

     ...rest of code 
    } 

團塊對象的斑點,對於元數據計數顯示爲0。 每個項目都有元數據,通過查看Azure存儲資源管理器中每個blob的屬性進行驗證。

任何幫助表示讚賞。

回答

1

這是完全有可能上市的斑點當結果來獲取元數據。你需要做的是在ListBlobs方法調用中指定BlobListingDetails參數,並在那裏指定BlobListingDetails.Metadata。這將做的是在響應中包含每個blob的元數據。所以你的代碼是:

public static IEnumerable<GalleryPhoto> GetGalleryPhotos(string folderPath) 
{ 

     var container = CreateAzureContainer(containerName, false); 
     container.FetchAttributes(); 
     var blobDirectory = container.GetDirectoryReference(folderPath); 
     var photoGalleries = new List<GalleryPhoto>(); 
     var blobs = blobDirectory.ListBlobs(false, BlobListingDetails.Metadata).ToList(); 

     ...rest of code 
    } 

請試試這個。它應該工作。

+0

@Guarav Mantri ... ty,that work – dinotom