我在C#代码中使用ListBlobsSegmentedAsync列出所有Blob。是否有办法将图像和视频与ListBlobsSegmentedAsync的响应分开?
答案 0 :(得分:0)
以下是this link中的一个示例。您应该能够优化代码以执行yield return
,这将迭代地返回结果,而不会让调用代码等待所有结果返回。
public static String WildCardToRegular(String value)
{
return "^" + Regex.Escape(value).Replace("\\*", ".*") + "$";
}
然后,将其与ListBlobsSegmentedAsync一起使用:
var blobList = await container.ListBlobsSegmentedAsync(blobFilePath, true, BlobListingDetails.None, 1000, token, null, null);
var items = blobList.Results.Select(x => x as CloudBlockBlob);
// Filter items by search pattern, if specify
if (!string.IsNullOrEmpty(searchPattern))
{
items = items.Select(i =>
{
var filename = Path.GetFileName(i.Name);
if (Regex.IsMatch(filename, WildCardToRegular(searchPattern), RegexOptions.IgnoreCase))
{
return i;
}
return null;
}).ToList();
}