您可以从Azure Block Blob下载特定的块吗?

时间:2016-10-18 20:24:22

标签: azure-storage azure-storage-blobs

如果您知道Block Id,是否可以从Azure Block Blob下载特定块?

2 个答案:

答案 0 :(得分:0)

您可以利用Microsoft Azure Storage SDK快速开始使用Azure Blob存储。 Azure Storage SDK是Blob Service REST API的包装器。在关于Blob Service REST API的官方教程中,我们无法通过Block Id找到有关下载特定块的任何信息。此外,您可以使用Get Blob通过指定要从blob下载的数据的偏移量和长度来下载指定范围内的blob字节。

答案 1 :(得分:0)

是的,您绝对可以,这是一个如何下载第一个块的示例:

var storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net");

CloudBlobClient serviceClient = storageAccount.CreateCloudBlobClient();

var container = serviceClient.GetContainerReference("containerName");

var blockBlob = container.GetBlockBlobReference("blobName");

var blocklist = await blockBlob.DownloadBlockListAsync();

var firstBlock = blocklist.First();

var memStream = new MemoryStream();

await blockBlob.DownloadRangeToStreamAsync(memStream, 0, firstBlock.Length);

string contents;

using (var streamReader = new StreamReader(memStream))
{
    contents = await streamReader.ReadToEndAsync();
}

您将需要nuget中的几个软件包:

Microsoft.WindowsAzure.Storage
Microsoft.WindowsAzure.Storage.Blob