c# - 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 中可行吗?
解决方案
有没有办法返回只匹配模式的文件。示例 我想检索其中包含“abc”的文件名。
不幸的是,这是不可能的。Azure Blob 存储中对服务器端搜索的支持有限。您唯一可以过滤的是 blob 前缀,即您可以指示 Azure 存储服务仅返回以某些字符开头的 blob 名称。
对于您的方案,您需要获取 blob 容器中所有 blob 的列表并在客户端进行过滤。
推荐阅读
- php - 用字符串中的任何字符查找任何数字和空格的匹配模式并替换为 | 在 PHP 中
- c++ - 接收迭代器并返回向量的函数
- c++ - 如何通过重用基类构造函数来实现派生类构造函数?
- javascript - 如何在 React 中将 const 变量作为道具传递给组件?
- math - 用直线测量对象的三角剖分
- java - 搜索栏已保存但没有文本
- css - 模态停留在屏幕上或单击元素时不出现
- functional-programming - 有没有办法在 Isabelle 中为自定义数据类型添加语法?
- html - 我可以使用 JQuery 将 CSS 网格的子集(比如完整的列/行)从一个页面拉到另一个页面吗?
- php - laravel - 使用 unllink 删除文件,接收是目录错误