小编kro*_*lth的帖子

提高azure blob存储查询速度

我们目前在同一个Azure容器下有一个包含数千个文件的blob存储.我们的文件命名约定是这样的:

StorageName \队伍\子团队\文件名

我正在编写一个工具,显示每个特定子团队的文件.代码获取Container的blob列表,然后为每个尝试与正确的Team\Subteam匹配的blob列表(请参阅下面的示例代码).

这有效但速度极慢(因为我需要浏览所有文件以查看它们是否与特定的子团队匹配).有没有办法提高查询的速度?我能想到的优化,比如"寻找球队相匹配的第一个文件,你正在寻找,然后跟踪,当你找到一个不同的团队退出早期",但会假定BlobList进行排序,并不会解决的最糟糕的情况.

不幸的是,目前不能在不同容器下拆分文件.

这是示例代码:

IEnumerable<IListBlobItem> blobs = blobContainer.ListBlobs(
    new BlobRequestOptions() 
    {
        UseFlatBlobListing = true, 
        BlobListingDetails = BlobListingDetails.Metadata 
    }).OfType<CloudBlob>();

foreach (var blob in blobs) {
var cloudy = blob as CloudBlob;

string blobTeamId = cloudy.Uri.Segments[2].Trim('/');
if (blobTeamId != teamId)
        continue;

//Do something interesting with the file
Run Code Online (Sandbox Code Playgroud)

c# azure azure-storage azure-storage-blobs

7
推荐指数
1
解决办法
5353
查看次数

标签 统计

azure ×1

azure-storage ×1

azure-storage-blobs ×1

c# ×1