我想从带有 blockId 的 azure block blob 中获取特定 block ,这可能吗? 类似的东西
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);
最佳答案
I want to get a specific block from an azure block blob with the blockId, is this even possible?
应该可以这样做,但它不会像您在示例代码中提到的那么简单。
这是您需要执行的操作:
- 获取 block 列表。列表中的每个元素都有一个 block ID 和 block 的大小。
- 假设您想要获取 block “n”的数据,您要做的就是迭代
0
中的列表。至n - 1
block 并添加每个 block 的大小。 - 接下来您需要调用
DownloadRangeToStreamAsync(Stream, Nullable<Int64>, Nullable<Int64>)
,您的offset
在哪里value 将是步骤 2 中计算的每个 block 的大小和length
的总和。 value 将是您要下载的 block 的大小。
关于c# - 我可以从 Azure block Blob 获取特定 block 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75487708/