4

Azure Storageでブロック BLOBを使用しています。「Get Block List」を呼び出す必要があることがわかった限り、コミットされていないブロックを取得する必要があります。これが問題です。

「ブロック リストの取得」機能は C# (Microsoft.WindowsAzure.StorageClient.dll) に存在しますか?

MSDN は、HTTP 要求の実行についてのみ言及しており、StorageClient API については言及していません。

この関数が C# に存在しない場合、C# API に含める予定はありますか?

4

2 に答える 2

6

探しているのは、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();
    }
}
于 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 に答える