4

我正在使用Azure 存储中的块 Blob。我需要获取未提交的块,据我发现我需要调用“获取块列表”。这是问题所在。

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

MSDN 只提到了做一个 HTTP 请求,没有提到 StorageClient API。

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

4

2 回答 2

6

我认为您正在寻找的是 CloudBlockBlob http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storageclient.cloudblockblob.downloadblocklist.aspx上的 DownloadBlockList 方法

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();
    }
}
于 2011-06-03T00:01:57.740 回答
0

您可能想查看 Microsoft.WindowsAzure.StorageClient.Protocol 命名空间中的 GetBlockListResponse 类:http: //msdn.microsoft.com/en-us/library/ee758632.aspx

希望这可以帮助

谢谢

高拉夫

于 2011-06-02T14:18:03.320 回答