我想从一个blockId为的蓝色块blob中获取一个特定的块,这可能吗?
var blockBlob = new BlockBlobClient(connectionString, containerName, blobName);
var blocklist = await GetBlobBlockList(blobName, cancellationToken);
var firstBlock = blocklist.First();
var memStream = new MemoryStream();
await blockBlob.DownloadStreamingAsync(memStream, firstBlock.Name);
1条答案
按热度按时间w46czmvw1#
我想从一个带有blockId的蓝色块blob中得到一个特定的块,这可能吗?
应该可以做到这一点,但它不会像您在示例代码中提到的那样简单。
以下是您需要做的事情:
1.获取块列表。列表中的每个元素都有一个块ID和块的大小。
1.假设您想获取块“n”的数据,您要做的是从
0
到n - 1
块迭代列表,并将每个块的大小相加。1.接下来,您需要调用
DownloadRangeToStreamAsync(Stream, Nullable<Int64>, Nullable<Int64>)
,其中offset
值将是步骤2中计算的每个块的大小之和,length
值将是您希望下载的块的大小。