2011-06-02 85 views
3

我正在使用Azure存储中的Block Blobs。我需要获得未提交的块,据我发现我需要调用“获取块列表”。这是问题。Azure Blob:获取C中的阻止列表#

C#(Microsoft.WindowsAzure.StorageClient.dll)中是否存在“获取阻止列表”功能?

MSDN只说做一个HTTP请求,而不是一个关于StorageClient API的字。

如果这个函数在C#中不存在,是否有计划将它包含到C#API中?

回答

4

我想你在找什么for是CloudBlockBlob上的DownloadBlockList方法 http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storageclient.cloudblockblob.downloadblocklist.aspx

有示例代码中存在MSDN - http://msdn.microsoft.com/en-us/library/ee772860.aspx

static void DownloadBlockListForBlob(Uri blobEndpoint, string accountName, string accountKey) 
{ 
    //Create service client for credentialed access to the Blob service, using development storage. 
    CloudBlobClient blobClient = new CloudBlobClient(blobEndpoint, new StorageCredentialsAccountAndKey(accountName, accountKey)); 

    //Get a reference to a block blob. 
    CloudBlockBlob blockBlob = blobClient.GetBlockBlobReference("mycontainer/mybinaryblob.mp3"); 

    //Download the committed blocks in the block list. 
    foreach (var blockListItem in blockBlob.DownloadBlockList()) 
    { 
     Console.WriteLine("Block ID: " + blockListItem.Name); 
     Console.WriteLine("Block size: " + blockListItem.Size); 
     Console.WriteLine("Is block committed?: " + blockListItem.Committed); 
     Console.WriteLine(); 
    } 

    //Download only uncommitted blocks. 
    foreach (var blockListItem in blockBlob.DownloadBlockList(BlockListingFilter.Uncommitted)) 
    { 
     Console.WriteLine("Block ID: " + blockListItem.Name); 
     Console.WriteLine("Block size: " + blockListItem.Size); 
     Console.WriteLine("Is block committed?: " + blockListItem.Committed); 
     Console.WriteLine(); 
    } 

    //Download all blocks. 
    foreach (var blockListItem in blockBlob.DownloadBlockList(BlockListingFilter.All)) 
    { 
     Console.WriteLine("Block ID: " + blockListItem.Name); 
     Console.WriteLine("Block size: " + blockListItem.Size); 
     Console.WriteLine("Is block committed?: " + blockListItem.Committed); 
     Console.WriteLine(); 
    } 
} 
+1

嗯,这是它。我已经尝试过这种方法,但没有过滤器选项。奇怪的是,空方法不会返回所有的块......这使我困惑,我认为无法通过此方法返回块。谢谢,你指出了这一点! – 2011-06-03 05:23:39

+0

您的MSDN链接已过时:“很抱歉,您请求的网页无法找到。” – pjgranahan 2017-01-23 01:31:49