c# - azure Blob : Get Block List in C#

标签 c# azure azure-blob-storage

我正在与 Block Blobs 合作在 Azure 存储中。我需要获取未提交的 block ,据我所知,我需要调用“获取 block 列表”。问题就在这里。

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

MSDN 只提到了执行 HTTP 请求,没有提及 StorageClient API。

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

最佳答案

我认为您正在寻找的是 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();
    }
}

关于c# - azure Blob : Get Block List in C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6215504/

相关文章:

c# - 表达式主体语法与 IL 级别的 Getter 语法有什么区别?

java - MVP设计模式最佳实践

azure - 为什么此 az login 命令在 Gitlab CI 中失败?

c# - 在 C# 中异步创建新 DocumentDB 文档的问题

java - 将页面 Blob 上传到 Azure 时出现错误 : Make sure the value of Authorization header is formed correctly

azure - 如何下载 Azure BLOB?

c# - 表达式树

c# - 如何解决 "base64 invalid characters"错误?

Azure表存储: a script to populate new column for existing tables

c# - 在Azure Blob存储中,虚拟目录和容器之间有什么区别?