我可以从Azure Block Blob获取特定的区块吗?

ggazkfy8  于 2023-02-19  发布在  其他
关注(0)|答案(1)|浏览(127)

我想从一个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);
w46czmvw

w46czmvw1#

我想从一个带有blockId的蓝色块blob中得到一个特定的块,这可能吗?
应该可以做到这一点,但它不会像您在示例代码中提到的那样简单。
以下是您需要做的事情:
1.获取块列表。列表中的每个元素都有一个块ID和块的大小。
1.假设您想获取块“n”的数据,您要做的是从0n - 1块迭代列表,并将每个块的大小相加。
1.接下来,您需要调用DownloadRangeToStreamAsync(Stream, Nullable<Int64>, Nullable<Int64>),其中offset值将是步骤2中计算的每个块的大小之和,length值将是您希望下载的块的大小。

相关问题