如何从 Azure.Storage.Blobs 模拟 GetBlobsByHierarchy()?

Posted

技术标签:

【中文标题】如何从 Azure.Storage.Blobs 模拟 GetBlobsByHierarchy()?【英文标题】:How to Mock GetBlobsByHierarchy() from Azure.Storage.Blobs? 【发布时间】:2021-02-01 10:02:07 【问题描述】:

谁能帮我从 Azure.Storage.Blobs 模拟 GetBlobsByHierarchy() 吗?我需要在 xUnit 中为以下代码创建模拟:

BlobContainerClient container;

var resultSegment = container.GetBlobsByHierarchy(prefix:prefix, delimiter:"/")
                             .AsPages(continuationToken, segmentSize);

代码的详细信息在 Microsoft 网站的 Link 中。我试图模拟这个GetBlobsByHierarchy() 函数但失败了。请给我一些想法/示例。

【问题讨论】:

【参考方案1】:

我解决了我的问题。我已经为 BlobContainerClient 类创建了存根类并覆盖了所需的函数..

以下是代码示例,

 public sealed class StubBlobContainerClient : BlobContainerClient
 
       public override Pageable<BlobHierarchyItem> GetBlobsByHierarchy(BlobTraits traits = BlobTraits.None, BlobStates states = BlobStates.None, string delimiter = null, string prefix = null, CancellationToken cancellationToken = default)
        
          //implementation
       
 

随时欢迎您分享任何其他解决问题的方法。

【讨论】:

以上是关于如何从 Azure.Storage.Blobs 模拟 GetBlobsByHierarchy()?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Azure.Storage.Blobs 上传流

如何使用 Azure.Storage.Blobs 程序集对 Azure Blob 存储操作设置重试策略?

C#:使用 Azure.Storage.Blobs 客户端库将 blob 从一个容器移动到另一个容器

C# Azure.Storage.Blobs SDK 如何列出和压缩容器中的所有文件并将压缩文件存储在另一个容器中

Azure.Fluent.Management 和 Azure.Storage.Blobs 包之间的冲突?

Azure SAS 令牌不适用于 Azure.Storage.Blobs BlobServiceClient