v12 .NET SDK 中的 Azure Storage BlobClient 和 BlockBlobClient 有什么区别?

问题描述

我环顾四周,但似乎在文档中找不到任何地方,而且这些 API 的 Intellisense 文档几乎完全相同。

Azure Storage v12 SDK 中的 Azure Storage BlockBlobClientBlobClient 有什么区别?

我应该使用哪一个来使用 Azure Storage v12 .NET SDK 将文件流高效地上传到 Azure Blob 存储?

这两段代码以及它们如何将文件上传到云端有什么区别吗?

var container = _blobServiceClient.GetBlobContainerClient(containerName);

var blobClient = container.GetBlobClient(filename); // this?
var blockBlockClient = container.GetBlockBlobClient(filename); // or this?

解决方法

Azure Blob 存储支持三种 Blob - Block,Page and Append。虽然所有这些 blob 的许多操作都是通用的(如删除、复制、租用等),但有一些操作是特定于 blob 类型的(如放置块、放置块列表的块 blob)。要查看特定于特定 blob 类型的操作,请参阅:https://docs.microsoft.com/en-us/rest/api/storageservices/operations-on-blobs

BlobClient 提供可用于各种 blob 的功能。

然而,要处理仅适用于特定类型 blob 的功能,您将需要使用特定于该类型的客户端,例如BlockBlobClient 处理块 blob,AppendBlobClient 处理附加 blob,PageBlobClient 处理页面 blob。

,

BlockBlobClient 是一个特化 - 当你知道你只处理块 blob 时,你可以使用它。它将具有一些仅适用于块 blob 的特殊功能。更多功能。

BlobClient 是一个通用实现 - 它的所有功能都可以在任何 blob 类型上安全地执行 - 块/附加/页面。功能较少。

在您的情况下,您可以使用任何一个。它们都具有您需要的功能。