Azure blob 文件名中的模式搜索

Pரத*_*ீப் 4 c# search azure azure-blob-storage

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

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());
            }
        }
Run Code Online (Sandbox Code Playgroud)

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

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

这在 Azure 中可能吗?

Gau*_*tri 6

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

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

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

  • 愚蠢的微软是否宣布了支持更多搜索 blob 选项的计划?我的意思是,这是一个简单的字符串,不是吗?当您可以支持“startsWith”时,您也必须能够支持“contains”和“endsWith”。 (3认同)