问题描述
我环顾四周,但似乎在文档中找不到任何地方,而且这些 API 的 Intellisense 文档几乎完全相同。
Azure Storage v12 SDK 中的 Azure Storage BlockBlobClient
和 BlobClient
有什么区别?
我应该使用哪一个来使用 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 类型上安全地执行 - 块/附加/页面。功能较少。
在您的情况下,您可以使用任何一个。它们都具有您需要的功能。