我們將日志檔案存盤在 Azure 存盤帳戶中,按目錄、日期和客戶排序,如下所示:
YYYY/MM/DD/customerNo/.../.../somestring.customerNo.applicationID.log
我需要每天自動決議其中一些檔案,這很好。但是,我只知道上面提到的前綴和后綴,它們可能位于不同的子目錄中。
所以這就是我的做法:
$files = (Get-AzStorageBlob -Container logfiles -Context $context) | Where-Object { $_.Name -like "$customerId.$appID.txt" }
這在沒有任何日志檔案的情況下速度很快,但現在一年后這個搜索需要很長時間。
據我了解,Azure 的 BLOB 存盤沒有支持檔案夾的分層檔案系統,因此“/”是 BLOB 名稱的一部分,并被客戶端軟體解釋為檔案夾。
但是,這無助于我加快搜索速度。有關如何改善這種情況的任何建議?
uj5u.com熱心網友回復:
Azure Blob 存盤支持通過前綴對 blob 進行服務器端過濾,但是您的代碼沒有利用這一點。
$files = (Get-AzStorageBlob -Container logfiles -Context $context) | Where-Object { $_.Name -like "$prefix*$customerId.$appID.txt" }
本質上,上面的代碼是列出所有 blob,然后在客戶端進行過濾。
為了加快搜索速度,請將您的代碼修改為:
$files = (Get-AzStorageBlob -Container logfiles -Prefix $prefix -Context $context) | Where-Object { $_.Name -like "$prefix*$customerId.$appID.txt" }
Prefix我只是在引數中傳遞了前綴。現在您將只收到以前綴開頭的 blob 名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/474171.html
標籤:天蓝色 电源外壳 天蓝色 blob 存储 天蓝色的PowerShell
下一篇:以其他用戶身份匯入PFX-模擬
