首页 > 解决方案 > Azure blob 文件名中的模式搜索

问题描述

我正在尝试搜索与我的搜索模式匹配的文件。

static void ListBlobsInFolder() {
            var account = <MyStorageAccount>
            var blobClient = account.CreateCloudBlobClient();
            var containerName = "importcontainer";
            var folderName = "subfolder";
            var container = blobClient.GetContainerReference(containerName);
            var query = container.ListBlobs(prefix: folderName, useFlatBlobListing: true, blobListingDetails: BlobListingDetails.None);
            foreach(var item in query) {
                Console.WriteLine(item.Uri.Segments.Last());
            }
        }

这让我得到了子文件夹中存在的文件列表。

有没有办法返回只匹配模式的文件。示例 我想检索其中包含“abc”的文件名。

这在 Azure 中可行吗?

标签: c#azuresearchazure-blob-storage

解决方案


有没有办法返回只匹配模式的文件。示例 我想检索其中包含“abc”的文件名。

不幸的是,这是不可能的。Azure Blob 存储中对服务器端搜索的支持有限。您唯一可以过滤的是 blob 前缀,即您可以指示 Azure 存储服务仅返回以某些字符开头的 blob 名称。

对于您的方案,您需要获取 blob 容器中所有 blob 的列表并在客户端进行过滤。


推荐阅读