2016-08-03 32 views
0

我有Azure Blob容器,每個容器有幾百個Blob。當使用GET LIST命令通過REST API查詢文件列表時,我確實得到了一個列表,但它是一個包含許多附加信息的XML,如「上次修改」等。這使得返回的列表每個文件大約500字節。對於具有200個Blob的容器,這可以用於獲取該列表的100千字節。這是非常低效的,特別是因爲文件本身每個只有大約10千字節,我需要頻繁地請求列表。通過REST獲取更優化的Azure Blob列表

我在GET LIST的文檔中看不到任何選項以返回更簡單的列表。我只需要blob名稱,沒有完整的URL並且沒有任何額外的信息,儘可能小和基本。對於短文件名,這可以適合每個文件少至5個字節。

是否有一些更有效的方式從Azure Blob獲取文件列表?

至於爲什麼我需要這個:我有一個系統,其中幾個用戶可以同時上傳Blob,其他人可以在不久之後下載特定的Blob。

我認爲有一個Web角色告訴用戶要下載什麼,但是當我使用C#Blob API列出Blob中的文件時,引擎蓋下的Web角色是否會從Blob中產生相同的下載開銷?價格對我們來說是一個嚴肅的考慮因素,因爲我們期望有很多用戶與此交流。

回答

3

我不知道一種方法只返回響應有效負載中的blob名稱。不過,如果你部署爲您的存儲賬戶在同一區域在你的Web角色,響應有效載荷實際上並不影響價格,因爲你並不需要區域內支付交通:https://azure.microsoft.com/en-us/pricing/details/storage/

+0

感謝您的建議!僅僅爲此使用卷軸可能是一個很好的選擇。 Azure定價很難理解:很多因素(傳出帶寬,交易次數等)。在鏈接您提供的美國東部和西部歐洲的價格計算是完全不同的,甚至是一個額外的第二個表歐洲。很難理解在內部列出blob是完全免費還是隻有帶寬是免費的。 – Oogst

+1

一個區域內的帶寬是免費的,你仍然是交易數量成本(比數據傳輸帶寬便宜得多)。 –

相關問題